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

4

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

这是否可以实现?

1个回答

4
如果您想手动确认使用您的Cognito用户池注册的每个用户,可以执行以下步骤:
第1步:确保在Amazon Cognito用户池控制台的“MFA和验证”侧边栏中取消选中电子邮件/短信验证要求。
第2步:为了改善用户体验,请为您的Web /移动应用程序使用自定义UI。用户注册后,将其重定向到另一个网页,说明他们需要管理员验证。如果您正在使用Cognito默认UI,则会显示“未正确配置用户池以进行确认代码传递”的消息,这不一定提供无缝的用户体验。
第3步:现在,您注册的用户应该在Amazon Cognito用户池中处于“UNCONFIRMED”状态。
第4步:要手动确认用户,可以使用AdminConfirmSignUp API调用[1],从应用程序代码或CLI中运行。这需要用户池ID和用户名,并且还需要管理员凭据才能成功运行。
我在我的端上测试过,我能够手动确认所有已注册到我的Amazon Cognito用户池的用户。我尝试的API调用如下(通过CLI测试):
aws cognito-idp admin-confirm-sign-up --user-pool-id us-east-1_XXXX --username XXXX

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

参考资料

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


1
为什么要取消电子邮件验证?用户不应该在确认之前验证他们的电子邮件吗? - Graham Hesketh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接