如何要求管理员确认 AWS Cognito 的注册用户?

12t*_*2th 4 amazon-web-services amazon-cognito

我正在使用 Cognito 托管 UI 选项来注册和登录我的网站的用户。目前,注册的用户可以立即使用其用户名/密码登录。这是一个问题,因为这允许任何人注册然后访问网站的受限部分。我想做的是要求管理员在每个注册用户登录之前手动确认他们。

这有可能实现吗?

Ark*_*jee 5

如果您想手动确认已使用 Cognito 用户池注册的每个用户,您可以执行以下步骤:

步骤 1:确保在 Amazon Cognito 用户池控制台的“MFA 和验证”侧栏中取消选中电子邮件/短信验证要求。

步骤 2:为了改善用户体验,请为您的 Web/移动应用程序使用自定义 UI。用户注册后,将他们重定向到另一个网页,该网页指出他们需要管理员验证。如果您使用 Cognito 默认 UI,则会出现消息“用户池未正确配置确认代码传送”,这不一定能提供无缝的用户体验。

步骤 3:现在,您的注册用户在 Amazon Cognito 用户池中应处于“未确认”状态。

步骤 4:要手动确认用户,您可以从应用程序代码或 CLI 中使用 AdminConfirmSignUp API 调用[1]。这需要 user-pool-id 和用户名,并且还需要管理员凭据才能成功运行。

我对此进行了测试,并且能够手动确认已注册到我的 Amazon Cognito 用户池的所有用户。我尝试的 API 调用如下(通过 CLI 测试):

aws cognito-idp admin-confirm-sign-up --user-pool-id us-east-1_XXXX --username XXXX
Run Code Online (Sandbox Code Playgroud)

调用 AdminConfirmSignUp API 后,您的“未确认”用户应具有“已确认”状态。

参考

[1]。https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html