我正在尝试使用我从身份提供商处检索到的访问令牌获取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
})
}
答案 0 :(得分:0)
您的“provider_url”是“cognito-idp.xxx”类型?看来你传递的是无效的“provider_url”