哪个参数可以用作 AWS Cognito 的主键?

Which parameter can be used as primary key from AWS Cognito?

我阅读了一些关于我的问题的问答,但我仍然不知道答案。

Can I use the userSub in AWS Cognito as primary key?

首先,我将尝试描述我的案例。

我想创建一个 spring 启动的应用程序作为使用 oauth2 的资源服务器。然后为了节省我一些用户管理时间,我希望使用 AWS Cognito,因为它允许我以管理员身份创建用户。我可以设置它不会让其他人自己注册,这对我来说很重要,因为我的应用程序将限制访问;管理员会处理的。

现在回答我的问题,我可以使用 AWS Cognito 的哪个字段作为主键来将特定于用户的数据保存在我的数据库中?我读到 usernamesub 都不正确。 例如,username 可以更改,而 sub 是全局唯一的,因此无法恢复。有什么方法可以创建一个自定义字段,AWS Cognito 将自动生成我可以使用的 UUID,如果我必须恢复用户池,我可以选择设置这个字段吗?

您仍然可以使用用户名。如果它曾经发生过更改,只需更新您的数据库以反映此更改。 您还可以在用户池中创建自定义属性。您可以使用它来存储自生成的 ID。至于自动生成这个,你可以有一个post confirmation lambda trigger that will use adminUpdateUserAttributes来分配一个唯一的id。