当前位置: 首页 > 知识库问答 >
问题:

未找到AWS Cognitio Swift 3身份

孙帅
2023-03-14

我按照移动中心的介绍来设置我的AWSCognito在应用程序中,当我尝试调用签署,由aws建议。上面写着身份未找到。身份在用户池中,我可以在后端看到它,也标记为已验证。为什么给出这个错误?

代码:

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 Domain=com.amazonaws.AWSCredentials ErrorDomain Code=10”(null)“UserInfo={{uuuu type=ResourceNotFoundException,message=Identity'eu-west-1:xxxxxxx'未找到。}]AWSIOSDK v2.4.16[Error]AWSCredentialsProvider.m行:577 | uuu 44-[AWSCondentialsProvider凭据]\uu block_invoke.353 |无法刷新。错误为[Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=10”(null)“UserInfo={{uuuu type=ResourceNotFoundException,message=Identity'eu-west-1:937fe0c4-974b-4f77-a835-425e1d9d9e00'未找到。}]使用登录提供程序结果=nil,错误=可选(错误域=com.amazonaws.AWSCognitoIdentityErrorDomain=10)(null)“UserInfo”={{uuuu type=ResourceNotFoundException,message=Identity'eu-west-1:xxxxxxxxx'未找到。})

共有3个答案

翟承志
2023-03-14

对于其他面临JS类似问题的人,您可以从应用程序中的开发人员控制台中清除内容

重新启动并重试。它应该会起作用。

梁宪
2023-03-14

“我可以在后端看到它”,你的意思是在Cognito身份浏览器中吗?我从您的消息中获取了标识id,但在Cognito数据存储中找不到它。您如何验证它是否存在?

请尝试清除您的凭据提供程序,然后再试一次,一些奇怪的元数据可能被卡在其中。

赏成益
2023-03-14

似乎没有找到用户的标识池ID。这与找不到用户池ID不同,后者是整个用户池的ID。丢失的ID似乎是用户设备本身的ID。

如果你想知道,这可能已经发生了

如果您在模拟器上运行此操作,并且想要快速修复,请单击硬件

如果您在移动设备上运行此功能,或者希望得到更好的修复,您仍然必须强制SDK获取新的标识ID。请通过清除密钥链来完成此操作。然后调用getIdentityId以获取新ID-以下是其工作原理:

获取/检索此提供程序的标识id。如果此提供程序上已设置标识id,则不会进行远程调用,并且该标识将作为AWSTask的结果返回(标识id也可作为属性使用)。如果此提供程序上未设置标识id,则将从服务中检索一个标识

看到你正在使用swft,你可以这样做:

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

这就是诀窍!在我有同样问题的时候为我工作。祝你好运如果您对这种方法或总体上有任何问题,请随时通知我。

 类似资料:
  • 我是Symfony2的新手,我正在尝试创建一个基本的注册系统。因此,在Symfony2文档的帮助下,我创建了这个security.yml: 我使用了这个路由: 根据http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form我不需要为login_check路由实现控制器。然而,Symfony将这个错

  • 我是Spring Boot和Spring Security的新手,继承了一个使用它们的webapp项目。我们将把webapp迁移到新的部署环境中。我们要改变的事情之一是认证机制,以便它能在新环境中运行。同时,我想使用一些现有的PostMan测试来测试RESTendpoint,绕过安全性。基本上,我想暂时禁用安全。 我有一个提供全局方法级安全性的类: 我有多个控制器类,例如,一个类 如果我尝试运行邮

  • 当我运行我的Android应用程序从eclipse,我得到这个错误。 从日蚀错误复制粘贴 然而,我的亚洲开发银行就在它说的不在的地方。 出了什么问题,如何解决? 我将cd放入adb所在的目录()中,输入adb并显示 adb是绿色的,这意味着它是可执行的,对吗? 例如,dx也是绿色的,当我在命令提示符中输入dx时,它工作了... adb怎么了?

  • 块引号 J拥有一个包含maven父项目(parent)和子项目(Domain,Web,Win)的Eclipse工作区。父pom包含wicket-spring-boot-starter-parent

  • 当我尝试使用或出现以下错误 JAVA错误:sun。安全ssl。SSLSessionImpl。(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Lsun/security/ssl/SessionId;Ljava/lang/String;I)V 在sun.security.ssl

  • 我通过Firebase在Android Studio中使用电话认证,我启用了电话登录,并在Firebase项目中添加了SHA-1和SHA-256。以下是我的所有依赖项: 下面是错误日志: