【发布时间】:2020-04-13 06:25:37
【问题描述】:
我希望使用 Cognito 附带的数据作为辅助键来连接到其他数据库。潜在地,我可以使用用户名或电子邮件。但是,根据项目的需要,使用敏感数据作为其他数据库的主键会有很多顾虑。我正在寻找另一种设置唯一键的方法。想知道 userSub 是否可以用作每个用户的唯一键?或者还有其他我可以使用的值吗?
【问题讨论】:
标签: authentication amazon-cognito
我希望使用 Cognito 附带的数据作为辅助键来连接到其他数据库。潜在地,我可以使用用户名或电子邮件。但是,根据项目的需要,使用敏感数据作为其他数据库的主键会有很多顾虑。我正在寻找另一种设置唯一键的方法。想知道 userSub 是否可以用作每个用户的唯一键?或者还有其他我可以使用的值吗?
【问题讨论】:
标签: authentication amazon-cognito
在 Cognito 用户池中创建用户时,Cognito 会为每个用户生成一个子用户,该用户在整个用户池中是唯一的。因此,您可以使用子字段作为用户的唯一标识符。
虽然现在考虑到您正在为您的用户使用用户名,但用户名需要是唯一的,因此您也可以使用用户名而不是 sub。
如果用户池配置为使用电子邮件作为用户名 - 在这种情况下,电子邮件对于所有用户来说必须是唯一的,这意味着不能有任何重复的电子邮件 ID。
如果电话号码被配置为用作用户名,电话号码也是如此。
因此,最终您可以选择使用 sub 作为密钥或用户名中的唯一标识符。
【讨论】:
我认为我不会使用电子邮件地址作为密钥。
如果用户决定将来更改电子邮件地址或由于某种原因电子邮件地址变得过时,这将如何影响系统。
我认为 sub 作为钥匙使用是一个不错的选择。然而,每当我想到主键时,我总是在想一百万年后的未来。
最终,我会选择一个在整个组织中永远唯一的密钥,从而消除任何未来冲突的可能性,或者在您的情况下,保密问题。
【讨论】: