当我试图按照aws的建议调用签名时,我按照移动集线器的介绍在应用程序中安装了我的AWSCognito。上面写着身份不明。标识在用户池中,我可以看到它在后端也标记为已验证。为什么会出现这个错误?
代码:
func handleLoginWithSignInProvider(signInProvider: AWSSignInProvider) {
AWSIdentityManager.defaultIdentityManager().loginWithSign(signInProvider, completionHandler:
{(result: Any?, error: Error?) -> Void in
if error == nil {
/* Handle successful login. */
print("success")
}
print("Login with signin provider result = \(result), error = \(error)")
})
}错误:
GetCredentialsForIdentity失败。Error is Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=10 "(null)“UserInfo={__type=ResourceNotFoundException,message=Identity‘eu-1:xxxxxxx’没有找到。} AWSiOSSDK v2.4.16错误AWSCredentialsProvider.m行:577__44-AWS认知AWSCredentialsProvider.m credentials_block_invoke.353无法刷新。Error是error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=10 "(null)“UserInfo={__type=ResourceNotFoundException,message=Identity Code=10 not .} Login with signin provider result = nil,Error =可选(Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=10 "(null)”UserInfo={__type=ResourceNotFoundException,message=Identity 'eu-west-1:xxxxxxxxx‘signin.})
发布于 2018-08-27 04:50:02
似乎找不到用户的标识池ID。这与找不到用户池ID不同,后者是整个用户池的ID。缺少的ID似乎是用户设备本身的ID。
如果您想要进行认知>联邦标识并手动删除标识ID,则可能会发生这种情况。无法检索标识ID,因此必须执行以下操作:
如果您正在模拟器上运行此操作,并希望快速修复,请单击“硬件”>“擦除所有内容和设置”。请注意,这样做会产生明显的效果,但也会迫使SDK为您提供新的标识ID。
如果您正在移动设备上运行这个程序,或者希望得到更好的修复,您仍然需要强制SDK获得一个新的标识ID。然后打电话给getIdentityId以获得一个新的ID --这就是为什么这样做的原因:
获取/检索该提供程序的标识id。如果已在该提供程序上设置了标识id,则不会进行远程调用,并且身份将作为AWSTask的结果返回( identityId也可用作属性)。如果在该提供程序上没有设置identityId,则将从服务中检索其中一个
看到你使用的是斯威夫特,下面是你如何做到的:
if error == nil {
print("success")
} else {
if let errorDescription = error?.localizedDescription {
if errorDescription == "The operation couldn’t be completed. (com.amazonaws.AWSCognitoIdentityErrorDomain error 10.)" {
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: AWSRegionType.USEast1, identityPoolId: "yourIdentityPoolId")
credentialsProvider.clearKeychain()
credentialsProvider.getIdentityId()
}
}
}有关更多信息,请查看以下有用的AWS线程:
https://forums.aws.amazon.com/thread.jspa?threadID=249749
另外,查看AWSCredentialsProvider上的AWS文档:
http://aws.github.io/aws-sdk-ios/docs/reference//Classes/AWSCognitoCredentialsProvider.html#//api/name/clearKeychain
这就成功了!当我有同样的问题时为我工作。祝好运!如果你对这种方法有任何问题,或者一般情况下,可以随时给我发短信。
发布于 2017-01-17 00:14:08
你所说的“我可以在后台看到它”是指在认知身份浏览器中吗?我从你的信息中提取了身份标识,但我找不到它存储在科尼图数据存储区。你如何验证它的存在?
尝试清除凭据提供程序,然后再试一次,一些奇怪的元数据可能已经卡在里面了。
发布于 2021-04-26 15:21:03
对于与JS面临类似问题的其他用户,您可以清除Application> Local中开发人员控制台中的内容,为导致错误的用户查找标识池UserID,并将其从存储中删除。
重新启动,再试一次。应该管用的。
https://stackoverflow.com/questions/41473798
复制相似问题