AWS Cognito用户未完成验证陷软锁定的官方处理方案咨询
AWS Cognito 注册中断导致未确认用户的官方解决方案
针对用户注册中途退出、陷入无法登录/重新注册的「软锁定」状态,AWS Cognito有以下官方推荐的处理方案:
自动触发确认码重发
借助Cognito的Lambda触发器(比如预注册触发器或自定义消息触发器),实现自动重发确认码的逻辑:- 用Lambda定期扫描用户池中
user_status为UNCONFIRMED且未完成邮箱验证的用户; - 调用
admin_resend_confirmation_codeAPI给这类用户重新发送验证邮件; - 可以设置重试次数和时间间隔,比如注册后24小时、48小时各发一次,避免骚扰用户。
- 用Lambda定期扫描用户池中
优化托管UI的用户引导
利用Cognito托管UI的自定义配置,在登录页面添加针对未确认用户的专属提示和操作入口:- 当用户登录触发「user is not confirmed」错误时,页面自动显示提示:“您的账户已创建但未验证,点击此处重新发送验证邮件”;
- 绑定
resend_confirmation_code操作到该按钮,让用户一键触发重发,无需自行摸索忘记密码流程。
自动清理长期未确认用户
通过Amazon EventBridge规则搭配Lambda,定期清理超时未确认的用户:- 配置EventBridge按固定周期(比如每天一次)触发Lambda;
- Lambda筛选出注册后超过指定时长(如7天)的未确认用户,调用
admin_delete_userAPI删除; - 释放邮箱资源后,用户就能重新发起注册流程。
允许未确认用户登录(谨慎使用)
如果业务场景对邮箱验证要求不高,可在用户池的应用客户端设置中开启「允许未确认用户登录」选项:- 未验证邮箱的用户登录后,系统可以强制引导完成邮箱验证流程;
- 注意:此方案会降低账户安全性,仅适合非敏感业务场景。
内容的提问来源于stack exchange,提问作者Tim Leach
相关产品推荐
相关产品推荐

