Skip to main content

Database authentication on Native platforms

Username/Email & Password authentication from native applications is disabled by default for new tenants as of 8 June 2017. Users are encouraged to use Universal Login and perform Web Authentication instead. If you still want to proceed you’ll need to enable the Password Grant Type on your dashboard first. See Application Grant Types for more information.
The Authentication API provides methods to authenticate and sign up database users.

Signing up with a database connection

Signing up requires calling the createUser method, passing the user’s given email, password, and the connection name to initiate the signup process. You can also specify additional user metadata to store.
Auth0
    .authentication()
    .createUser(
        email: "[email protected]",
        password: "secret-password",
        connection: "Username-Password-Authentication",
        userMetadata: ["first_name": "First",
                       "last_name": "Last"])
    .start { result in
        switch result {
        case .success(let user):
            print("User: \(user)")
        case .failure(let error):
            print("Failed with \(error)")
        }
    }

Login with a database connection

Logging in with a database connection requires calling login with the user’s username/email, password, and the name of the connection (such as Username-Password-Authentication) you wish to authenticate with. The response will be a Credentials object.
Auth0
    .authentication()
    .login(
        usernameOrEmail: "[email protected]",
        password: "secret-password",
        realm: "Username-Password-Authentication",
        scope: "openid")
     .start { result in
         switch result {
         case .success(let credentials):
            print("Credentials: \(credentials)")
         case .failure(let error):
            print("Failed with \(error)")
         }
     }