AWS Amplify是否使用未经身份验证的标识符ID来注册用户?

时间:2020-05-17 23:29:22

标签: amazon-web-services amazon-cognito aws-amplify

假设我们有一个Cognito身份池(允许未经身份验证的身份)和一个AWS Amplify会话,该会话未在其配置中指定mandatorySignIn选项,我对此类会话的理解是,它将被提升为未经身份验证的用户在指定正确的配置之后,对吗?

还是应该首先调用AWS.Auth.currentCredentials()?无论如何,假设在两种情况中的任何一种情况下,如果未经身份验证的用户使用AWS.Auth.signUp()进行注册,为注册指定的身份ID是否将与AWS.Auth.currentCredentials()指定的身份ID相同?

我问这个问题是因为我想为DynamoDB表中的未经身份验证的用户生成一个带有UUID的配置文件。

最后一个问题,如果用户关闭并重新打开应用程序,未认证的身份ID是否会保留?据我所知,它已保存在本地存储中,但我想确定。

1 个答案:

答案 0 :(得分:0)

看来,经过身份验证和未经身份验证的身份是完全不同的。您未经身份验证的身份确实会缓存在本地存储中(您可以使用Shift + F9在浏览器中查看它),它与您创建/身份验证的任何身份都不相同。

您希望将身份ID用作DynamoDB表中的密钥,因为它对于经过身份验证的用户和未经身份验证的用户都是唯一的。您还可以为已认证和未认证的用户使用不同的策略定义特定的IAM角色。

如果您想获取当前用户的identityId,可以致电AWS.Auth.currentCredentials(),您会注意到,只要您在未登录时获取凭据,便会获得本地缓存的未经身份验证的身份凭据,但登录时将取回已认证身份的凭证。漂亮的东西!