Android アプリケーションにログイン機能を追加する
WebAuthProvider.login メソッドを使用して、ユーザーをログインさせることができます。
WebAuthProvider.login(account)
.withScheme(getString(R.string.com_auth0_scheme))
.withScope("openid profile email")
.start(this, object : Callback<Credentials, AuthenticationException> {
override fun onFailure(exception: AuthenticationException) {
// 認証に失敗しました
}
override fun onSuccess(credentials: Credentials) {
// 認証に成功しました
}
})
認証結果は onSuccess コールバックに渡されます。
WebAuthProvider クラスのその他のオプションについては、Auth0.Android configurationを参照してください。
Android アプリケーションにログアウトを追加する
ユーザーをログアウトさせるには、WebAuthProvider.logout メソッドを呼び出します。ログアウトの結果は onSuccess コールバックで受け取れます。
このメソッドは、認証時にブラウザーで設定された Cookie を削除するため、ユーザーは次回認証を行う際に認証情報を再入力する必要があります。
ログアウトがキャンセルされた場合は、ログアウトを試みる前の画面にユーザーを戻すことを検討してください。
WebAuthProvider.logout(account)
.withScheme("demo")
.start(this, object: Callback<Void?, AuthenticationException> {
override fun onSuccess(payload: Void?) {
// ユーザーがログアウトしました!
}
override fun onFailure(error: AuthenticationException) {
// エラーが発生しました!
}
})
AuthenticationAPIClient クラスを使用して、Auth0 からユーザーのユーザープロファイルを取得します。これには、次のものが必要です。
- ログイン時に受け取った
WebAuthProvider.login の呼び出し時に含める profile スコープ
- ユーザーのメールアドレスを取得する場合の
email スコープ
このサンプルでは、ユーザーのユーザープロファイルを取得して画面に表示する関数を紹介します。
var client = AuthenticationAPIClient(account)
// 受け取ったアクセストークンを使用して `userInfo` を呼び出し、Auth0 からプロフィールを取得します。
client.userInfo(accessToken)
.start(object : Callback<UserProfile, AuthenticationException> {
override fun onFailure(exception: AuthenticationException) {
// エラーが発生しました!
}
override fun onSuccess(profile: UserProfile) {
// ユーザーのプロフィールを取得しました!
val email = profile.email
val name = profile.name
}
})