AWS Cognito:Cognito ID和sub之间的区别,我应该使用什么作为主键?

Vin*_*oft 11 amazon-web-services aws-cognito

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

Cognito使用两者cognitoIdsub识别用户.

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

sub:已通过身份验证的用户的UUID.这跟不一样username.

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

Pre*_*raj 10

  • subJECT)是全局唯一的,并因此是用于用户池独特为好。
  • 与可以重新分配给用户池中的另一个用户的 username 不同,sub 永远不会重新分配。

来源

  • `sub` 用于 **subject**,根据 JWT 规范 https://en.wikipedia.org/wiki/JSON_Web_Token (4认同)

ble*_*shi 6

命名可能会令人困惑,我会尽力澄清.

Amazon Cognito旗下通常有两个游泳池:

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

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

$ {} cognito-identity.amazonaws.com:sub

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

AWS.config.credentials.identityId

这看起来像什么

美东1:############ - ######## - ############

一旦刷新凭据,它将仅存在于凭证上.

所以回答你的问题,.

  • @ MattyK14,据我所知,No Subs与用户池中的用户ID相似.一旦用户池进入联合身份世界,用户就会映射到身份(很多 - >一个) (2认同)