关于AWS Cognito用户池邮箱验证后需管理员审批激活的问询
AWS Cognito 用户池审批流程问题解答
1. 自助注册场景:邮箱验证后、账号激活前插入管理员审批
Cognito 原生不支持直接配置「邮箱验证后等待管理员审批再激活」的流程,但可以通过Lambda触发器+管理员审批操作实现:
- 先开启用户池的自助注册和邮箱验证功能;
- 配置
Confirm Sign-upLambda触发器:当用户完成邮箱验证后,这个触发器会调用你编写的Lambda函数,将用户的email_verified设为true,同时把用户状态改为FORCE_CHANGE_PASSWORD,或者在用户自定义属性里添加needs_approval: true标记; - 管理员可以通过Cognito控制台、CLI命令(
aws cognito-idp admin-update-user-attributes),或者你搭建的自定义审批系统,核查用户信息后,将用户状态改为正常激活(比如移除强制改密码状态、更新自定义属性),完成审批。
2. 关闭自助注册后:发送邮箱验证再要求管理员审批激活
完全可以实现,流程如下:
- 关闭用户池的自助注册功能,只允许管理员创建用户;
- 管理员创建用户时(通过控制台、CLI
aws cognito-idp admin-create-user或API),设置MessageAction参数:- 选
RESEND:Cognito会自动给用户发送邮箱验证邮件,用户验证后邮箱状态变为已验证; - 选
SUPPRESS:可以后续调用aws cognito-idp admin-resend-user-invitation手动发送验证邮件;
- 选
- 用户完成邮箱验证后,管理员再通过控制台或API将用户状态激活(比如设置正式密码、移除临时状态),完成审批环节。
内容的提问来源于stack exchange,提问作者Rogelio
相关产品推荐
相关产品推荐

