24

我使用 AWS Cognito 构建无服务器后端以进行用户管理。

Cognito 使用cognitoIdsub来识别用户。

来自官方 awslabs 的这个项目使用 cognitoId 作为数据库表中的主键将数据链接到用户对象,但有关文档sub明确指出:

sub:经过身份验证的用户的 UUID。这与username.

问题:我应该使用什么作为主键,cognitoID或者sub

4

2 回答 2

21

命名可能会令人困惑,我将尝试澄清。

Amazon Cognito 旗下通常有两个池:

  • 用户池
  • 身份池(联合身份)

您所指的“子”通常在 IAM 策略中表示为

${认知身份.amazonaws.com:sub}

并将解析为(在 javascript sdk 中)中找到的值

AWS.config.credentials.identityId

看起来像

us-east-1:########-####-####-####-############

仅在刷新凭据后,它才会存在于凭据上。

因此,要回答您的问题,sub

于 2017-03-23T01:10:00.057 回答
13
  • sub(主题) 是全局唯一的,因此对于用户池也是唯一的。
  • 与用户名可以重新分配给用户池中的另一个用户不同,sub 永远不会重新分配。

来源

于 2018-11-27T01:23:58.157 回答