You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Serverless配置AWS Cognito用户池后,Amplify注册未发验证邮件

问题诊断与解决

你的Cognito用户池基础配置(邮箱作为用户名、自动验证邮箱、确认链接模板)是正确的,但用户收不到验证邮件、状态无法自动确认的问题,根源大概率在以下几个环节:

1. Cognito邮件发送依赖的SES配置未完成

AWS Cognito发送验证邮件需要依托SES(简单邮件服务),默认的测试发件地址no-reply@verificationemail.com存在发送限制,生产环境必须配置已验证的发件资源:

  • 登录AWS控制台进入SES服务,完成自定义域名或单个邮箱地址的验证
  • 回到Cognito用户池的「消息自定义」设置,将发件邮箱替换为SES中已验证的地址
  • 确保SES已脱离沙盒模式(沙盒模式下仅能发送到已验证的邮箱地址)

2. Amplify注册流程的调用逻辑缺失

如果你的Next.js应用仅调用了Auth.signUp()方法,但未处理验证触发的异常情况,可能导致邮件未自动发送:

  • 确认signUp执行成功后返回的用户状态为userConfirmed: false
  • 若未收到邮件,可在注册成功后调用Auth.resendSignUp(email)手动触发验证邮件发送

3. 用户池客户端缺少认证流程权限

你的CognitoUserPoolClient配置未声明允许的认证流程,可能导致客户端无法触发验证邮件的发送逻辑。需补充以下配置:

CognitoUserPoolClient:
  Type: "AWS::Cognito::UserPoolClient"
  Properties:
    ClientName: user-pool-client
    GenerateSecret: False
    UserPoolId:
      Ref: CognitoUserPool
    # 新增以下配置
    ExplicitAuthFlows:
      - USER_SRP_AUTH
      - USER_PASSWORD_AUTH
    AllowedOAuthFlowsUserPoolClient: true

4. 邮箱接收端的拦截问题

检查用户邮箱的垃圾箱、垃圾邮件文件夹,验证邮件可能被误判为垃圾邮件;同时确认注册时填写的邮箱地址无误。


内容的提问来源于stack exchange,提问作者Stefan Stankovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:05:31