2017 年 6 月 8 日以降、新しいテナントではネイティブアプリケーションからのパスワードレス認証はデフォルトで無効になっています。Universal Login を使用し、代わりに Web Authentication を実行することを推奨します。それでも続行する場合は、まずDashboardで MFA Grant Type を有効にする必要があります。詳細については、Application Grant Types を参照してください。
パスワードレス は、メールアドレスまたは SMS を介して行われ、ユーザーに code を送信する方法と、code を含むリンクを送信する方法があります。パスワードレス認証では、どの方法でも code をリクエストし、その後、検証のために code を入力するという 2 つの手順が必要です。
まず、以下のパスワードレスのメソッドを使用できるように、Android SDK をセットアップ してください。
パスワードレス API を使用するには、Auth0 Android SDK バージョン 1.20 以降が必要です。
ネイティブクライアントからパスワードレス API を使用するには、Dashboard > Applications > (YOUR APPLICATION) > Settings > Advanced Settings > Grant Types で、アプリケーションのパスワードレス OTP グラントを有効にします。
この例では、ユーザーのメールアドレス、PasswordlessType.CODE、および接続名をパラメーターとして passwordlessWithEmail を呼び出し、code をリクエストします。成功したら、code を送信中であることをユーザーに通知し、必要に応じてその code を入力する画面に誘導するとよいでしょう。
authentication
. passwordlessWithEmail ( "username@domain.com" , PasswordlessType.CODE, "my-passwordless-connection" )
. start ( object : Callback < Void ?, AuthenticationException >() {
override fun onSuccess (result: Void ?) {
// コードを送信しました!
}
override fun onFailure (error: AuthenticationException ) {
// エラー!
}
})
passwordlessWithSms メソッドを使用すると、SMS で code を送信できます。
ユーザーが code を受け取ったら、それを入力できます。loginWithEmail メソッドを呼び出し、ユーザーのメールアドレス、受け取った code、対象の接続の名前を渡します。成功すると、レスポンスとして Credentials オブジェクトが返されます。
authentication
. loginWithEmail ( "username@domain.com" , "123456" , "my-passwordless-connection" )
. start ( object : Callback < Credentials , AuthenticationException >() {
override fun onSuccess (result: Credentials ) {
// ログインしました!
}
override fun onFailure (error: AuthenticationException ) {
// エラー!
}
})
loginWithSms メソッドを使用して、SMSで受信した code を送信し、ユーザーを認証できます。
デフォルトで使用されるスコープは openid profile email です。