2017年6月8日以降、新規テナントでは、ネイティブアプリケーションから行うパスワードレス認証がデフォルトで無効になります。代わりに、ユニバーサルログインを使用してWeb認証を行うことが推奨されています。引き続き利用したい場合は、まずダッシュボードで[MFA Grant Type(MFA付与タイプ)]を有効にする必要があります。詳細については、「アプリケーションの付与タイプ 」を参照してください。
パスワードレス認証は、メールまたはSMSを介して、ユーザーにコードを送信するか、コードを含むリンクを送信することで行えます。パスワードレス認証のすべての方法で、確認のためのコードの要求とコードの入力という、2つのステップが必要になります。
Android SDKをセットアップする
最初にAndroid SDKをセットアップ して、以下のパスワードレスメソッドを使えるようにします。
Auth0とAndroid SDKを構成する
Passwordless APIを使用するには、Auth0 Android SDKのバージョン1.20以降を使って設定する必要があります。
ネイティブクライアントのパスワードレスAPIを使用するには、 [Dashboard]>[Applications(アプリケーション)]>(自身のアプリケーション)>[Settings(設定)]>[Advanced Settings(詳細設定)]>[Grant Types(付与タイプ)] に移動して、アプリケーションのパスワードレスOTP付与を有効にします。
コードを要求する
この例では、ユーザーのメールアドレス、PasswordlessType.CODE
、接続名をパラメーターとしてpasswordlessWithEmail
を呼び出すことで、コードを要求します。成功したら、ユーザーにコードが届くことを知らせると共に、そのコードを入力する場所にユーザーを誘導すると良いでしょう。
authentication
. passwordlessWithEmail ( "username@domain.com" , PasswordlessType.CODE, "my-passwordless-connection" )
. start ( object : Callback < Void ?, AuthenticationException >() {
override fun onSuccess (result: Void ?) {
// Code sent!
}
override fun onFailure (error: AuthenticationException ) {
// Error!
}
})
passwordlessWithSms
メソッドを使用して、SMSを使ったコード送信を行えます。
コードを入力する
ユーザーはコードを受け取ると、入力することができます。loginWithEmail
メソッドを呼び出し、ユーザーのメール、受信したコード、および当該の接続名と共に渡します。成功すると、応答でCredentials
オブジェクトを受信します。
authentication
. loginWithEmail ( "username@domain.com" , "123456" , "my-passwordless-connection" )
. start ( object : Callback < Credentials , AuthenticationException >() {
override fun onSuccess (result: Credentials ) {
// Logged in!
}
override fun onFailure (error: AuthenticationException ) {
// Error!
}
})
loginWithSms
メソッドを使って、SMSで受信したコードを送信し、ユーザーを認証することができます。
デフォルトで使用されるスコープは、openid profile email
です。