无法使用AWS Cognito登录并访问令牌

时间:2017-06-01 16:04:41

标签: swift amazon-web-services login aws-sdk aws-cognito

我正在尝试使用我从身份提供商处检索到的访问令牌获取cognito身份。有点像here。 AWS SDK的这一部分似乎存在问题,如here所述,所以我试图找到解决办法。

当我运行代码时,我收到以下错误:

  

任务   结果:nil错误错误   Domain = com.amazonaws.AWSCognitoIdentityErrorDomain Code = 8"(null)"   UserInfo = {__ type = NotAuthorizedException,message =无效的登录令牌。   发行人不匹配providerName}

在我的代码下面,我怀疑问题是我在这里设置登录的方式:

idInput?.logins = [" provider_url":idToken] //我还需要其他参数吗?

代码:

func congitoAuthentication(accessToken : String, idToken : String, refreshToken : String) {
    let credentialProvider = AWSCognitoCredentialsProvider(regionType: .EUWest1, identityPoolId: "eu-west-2:XXXX")

    let serviceConfig = AWSServiceConfiguration(region: .EUWest1, credentialsProvider: credentialProvider)

    AWSServiceManager.default().defaultServiceConfiguration = serviceConfig
    let idInput = AWSCognitoIdentityGetIdInput()
    idInput?.identityPoolId = "eu-west-2:XXXX"
    idInput?.logins = ["provider_url": idToken]

    let identity = AWSCognitoIdentity.default()

    let task = identity.getId( idInput!).continueWith(block: { (task) -> Any? in
        if let error = task.error as? NSError {
            print("Error   \(error)")
            return nil
        }

        return nil
    })
}

1 个答案:

答案 0 :(得分:0)

您的“provider_url”是“cognito-idp.xxx”类型?看来你传递的是无效的“provider_url”