将通过cognito身份验证获得的用户信息存储在dynamodb中的最佳实践是什么



在前端,我将使用cognito进行注册和登录

让我们假设我有一个";用户";表来存储用户信息
Username(使用cognito Username(将是表中的分区键
每个用户都有不同的权限,这些权限将存储为字符串列表,如["admin"、"viewer"]等,因此会有一个名为"的属性;权限";

以下是我正在考虑的注册和登录流程:

  1. 在前端注册>Cognito注册(等待Auth.signUp(>如果成功,请使用lambda函数将用户信息存储在dynamodb中
    向generanddb发出POST请求的请求体将是这样的
{
username: xxxxx (partition key),
permissions: ["admin", "viewer"],
isConfirmed: 0
}

2.如果用户在Cognito用户池中得到确认,则发送PATCH请求将isConfirmed更改为1

3.用户在前端登录>Cognito登录(等待Auth.signIn(>在dynamodb 中按用户名查询用户数据

下面有几个问题
a(在注册和登录流程方面有什么问题可以改进吗
b(对于(2(,如果确认完成,我可以触发lambda函数吗?

查看有关Cognito触发器的文档。一旦用户通过了注册过程的确认步骤,就可以使用确认后触发器来执行lambda。这将使您避免所提出的解决方案的第二步(发送PATCH请求(,只需担心在数据库中存储用户信息的逻辑。

最新更新