如何使用 AWS Cognito 创建两种不同类型的用户?

How can I create 2 different type of users using AWS Cognito?

我想使用 AWS Cognito 创建 2 个不同的用户,例如 "basicUser" 和 "admin"。目前我能够使用 AWS Amplify 创建 basicUser,它基本上在后台使用 AWS Cognito。

在 AWS Amplify 的文档中写道,我可以在将要保存的用户对象中插入自定义属性。 AWS Amplify 示例报告:

const user = await Auth.signUp({
            username,
            password,
            attributes: {
                email,          // optional
                phone_number,   // optional - E.164 number convention
                // other custom attributes 
            }
        });

AWS Amplify 文档:https://docs.amplify.aws/lib/auth/emailpassword/q/platform/js#sign-up

使用作为用户可能拥有的角色数组的属性角色是否是一个好的解决方案?这将在代码方面使用 Cognito API 参考此文档 [应用程序的所有者将负责确认来自用户的 "admin request"]:

更新属性文档: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html

这种方法是一种不好的做法,我可以做一些更好的事情还是一个好的解决方案?

提前致谢。

如果在JS端注册的用户有一个审批系统(希望在浏览器中运行)那么,根据你的问题描述,这是可以的。

不过,还有一个办法。您可以使用 Cognito 群组。每当创建用户时,您都应该触发 lambda 函数以将用户分配给组。在 Cognito 触发器部分,您可以看到一些要使用的触发器。然后保护完全来自服务器端而不是客户端。