我一直在使用以下示例将cognito登录引入我的iOS应用程序:
https://github.com/awslabs/aws-sdk-ios-samples/tree/master/CognitoYourUserPools-Sample
这工作得很好,现在我有了一个AWSCognitoIdentityUserPool
对象,可以调用currentUser()
方法来访问用户。
我正在努力寻找的是如何提取AccessToken
和IdToken
。
在android等价物中,onSuccess
的AuthenticationHandler
方法具有CognitoUserSession
参数,该参数又具有getIdToken()
和getAccessToken()
。
令人沮丧的是,我在输出窗口中看到它们以json格式以AuthenticationResult
的形式输出,但是我只是不知道如何以编程方式访问它们?
最佳答案
现在想通了:
func getSession(){
self.user?.getSession().continueOnSuccessWith { (getSessionTask) -> AnyObject? in
DispatchQueue.main.async(execute: {
let getSessionResult = getSessionTask.result
self.idToken = getSessionResult?.idToken?.tokenString
self.accessToken = getSessionResult?.accessToken?.tokenString
})
return nil
}
}