【问题标题】:Cognito Identity ID persistenceCognito 身份 ID 持久性
【发布时间】:2019-08-11 00:32:07
【问题描述】:

我有一个 Cognito 身份池,其中一个 Cognito 用户池作为身份验证提供程序。

身份池接受经过身份验证和未经身份验证的身份。

假设使用此设置的网络应用程序:

  • 当未经身份验证的用户加载应用程序时,会发出未经身份验证的身份 ID(假设:'UNAUTH_ID')

  • 当用户使用电子邮件/密码进行身份验证时,会发出一个经过身份验证的身份 ID(假设为“AUTH_ID”)并与该用户相关联。

我想使用此 AUTH_ID 作为键创建一个数据库条目,但需要确定对于给定用户,此“AUTH_ID”永远不会改变。

例如,如果同一用户使用另一台设备,我假设将首先发出“UNAUTH_ID_2”,然后一旦用户成功登录,就会检索到相同的“AUTH_ID”并在第二台设备上使用。我还假设“AUTH_ID”或任何其他会为给定经过身份验证的用户重新生成新身份 ID 的机制不存在时基弃用。

我猜答案是肯定的,但我找不到任何能明确证实这一点的官方文件。

如果有人可以确认这一点和/或将我发送到相关的官方文档,我将不胜感激。

【问题讨论】:

    标签: amazon-cognito


    【解决方案1】:

    是的,你猜对了。对于 Authenticated Identity,您的用户将拥有一个不会更改的唯一 sub id。您可以将此子 ID 用作 IAM 策略中的变量,以将 fine grained access 提供给您的用户。这意味着您可以创建一个 s3 存储桶(甚至是 dynamodb 表)并使用唯一的子 ID 作为包含所有用户文件的文件夹名称。现在只有用户可以访问 s3 上的这个文件夹。

    请注意,子 ID 在身份池中。用户池中还有另一个子 ID,它是不同的,不能在策略语句中使用。

    您可以看到here 来确认 sub (UUID) 是全局唯一的。

    【讨论】:

      猜你喜欢
      • 2019-04-11
      • 1970-01-01
      • 2017-08-15
      • 2019-07-04
      • 2016-10-16
      • 2016-09-04
      • 2019-09-20
      • 2017-02-02
      • 2020-10-14
      相关资源
      最近更新 更多