Closed taretmch closed 12 months ago
offline_access
を scope に入れると refresh_token で access_token を更新できる。
webAuth ログイン完了時に credentialsManager に credentials を保存する。
credentialsManager.store(credentials: credentials)
isAuthenticated メソッドとして実装する。
refresh_token がオンになっている場合は、 canRenew()
で良い。
credentialsManager.canRenew()
Checks that there are credentials stored, and that the credentials contain a refresh token. If you are using refresh tokens, use this method instead of hasValid(minTTL:) to check for stored credentials when your app starts up.
ref: https://auth0.github.io/Auth0.swift/documentation/auth0/credentialsmanager/canrenew()
refresh_token がオフの場合、 hasValid()
が良さそう。
credentialsManager.hasValid()
Checks that there are credentials stored, and that the access token has not expired and will not expire within the specified TTL. If you are not using refresh tokens, use this method instead of [canRenew()](https://auth0.github.io/Auth0.swift/documentation/auth0/credentialsmanager/canrenew()) to check for stored credentials when your app starts up.
ref: https://auth0.github.io/Auth0.swift/documentation/auth0/credentialsmanager/hasvalid(minttl:)
credentialsManager.credentials で、リフレッシュトークンによる更新が自動的に行われる。ID Token、Access Token なども取得できる。
getUserInfo メソッドとして実装する。
credentialsManager.credentials で Access Token を取得後、Authentication API Client の userInfo に渡すことによってユーザー情報を取得できる。
Android 側は2種類の Credentials Manager がある。
Auth0 インスタンス、Context と、AuthenticationAPIClient が必要
val auth0 = Auth0(this)
val apiClient = AuthenticationAPIClient(auth0)
val manager = CredentialsManager(apiClient, SharedPreferencesStorage(this))
val auth0 = Auth0(this)
val apiClient = AuthenticationAPIClient(auth0)
val manager = SecureCredentialsManager(this, apiClient, SharedPreferencesStorage(this))
login 時、credentials を保存
manager.saveCredentials(credentials)
シンプル。
val loggedIn = manager.hasValidCredentials()
getCredentials で取得するとき、refreshToken によって Access Token も自動的に更新される。
manager.getCredentials(object: Callback<Credentials, CredentialsManagerException>() {
override fun onSuccess(credentials: Credentials) {
// Use credentials
}
override fun onFailure(error: CredentialsManagerException) {
// No credentials were previously saved or they couldn't be refreshed
}
})
Credentials を用いて AuthenticationAPIClient から取得できる。
iOS
Android