我一直在使用以下示例将cognito登录引入我的iOS应用程序:

https://github.com/awslabs/aws-sdk-ios-samples/tree/master/CognitoYourUserPools-Sample

这工作得很好,现在我有了一个AWSCognitoIdentityUserPool对象,可以调用currentUser()方法来访问用户。

我正在努力寻找的是如何提取AccessTokenIdToken

在android等价物中,onSuccessAuthenticationHandler方法具有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
    }
}

07-24 09:31