Tom*_*mer 3 ios swift amazon-cognito aws-amplify
成功登录后,我很难获取用户令牌。我唯一得到的是当前的用户 ID 和用户名,但我无法获取用户令牌。
func login(userData: RegistrationFields) {
_ = Amplify.Auth.signIn(username: userData.email.data, password: userData.password.data) {
[weak self] result in
switch result {
case .success(let signInResult):
if signInResult.isSignedIn {
self?.getCurrentUser()
debugPrint("Sign in succeeded")
}
case .failure(let error):
debugPrint("Sign in failed \(error)")
self?.authStateDelegate?.authState(state: .error(error: error))
}
}
}
func getCurrentUser() {
guard let user = Amplify.Auth.getCurrentUser() else {return}
self.authStateDelegate?.authState(state: .session(user: user))
}
Run Code Online (Sandbox Code Playgroud)
在登录成功回调中,您可以执行以下操作:
Amplify.Auth.fetchAuthSession { result in
switch result {
case .success(let session):
if session.isSignedIn {
do {
if let cognitoTokenProvider = session as? AuthCognitoTokensProvider {
let tokens = try cognitoTokenProvider.getCognitoTokens().get()
//tokens.idToken - is ID token. Access and refresh tokens also can be found here
}
} catch {
//error
}
} else {
//Not Logged in
}
case .failure(let error):
print("Fetch session failed with error \(error)")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3273 次 |
| 最近记录: |