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

如何在AWS Cognito中为注册与密码重置设置不同验证邮件?

解决AWS Cognito注册与密码重置邮件模板区分的问题

我刚好处理过类似的需求,AWS Cognito默认确实会把注册验证和密码重置流程的邮件模板共用,但其实通过官方提供的自定义消息触发器,就能轻松实现分场景配置不同的邮件内容,下面给你一步步拆解实现方案:

核心方案:使用Cognito自定义消息触发器(Custom Message Trigger)

这是AWS官方推荐的自定义邮件内容的方式,通过Lambda函数根据触发场景动态生成不同的邮件内容。

步骤1:创建处理自定义消息的Lambda函数

  1. 登录AWS Lambda控制台,创建一个新的Lambda函数(推荐用Node.js或Python,这里以Node.js为例)
  2. 把以下示例代码替换到函数编辑器中,代码会根据触发来源判断是注册还是密码重置场景,返回对应的邮件主题和正文:
exports.handler = async (event) => {
    // 判断触发场景
    switch(event.triggerSource) {
        case 'CustomMessage_SignUp':
            // 注册验证邮件配置
            event.response.emailSubject = "欢迎注册!请验证你的邮箱";
            event.response.emailMessage = `您好 ${event.request.userAttributes.name || event.userName},\n\n你的注册验证码是:{####}\n请在页面中输入完成注册。`;
            break;
        case 'CustomMessage_ForgotPassword':
            // 密码重置邮件配置
            event.response.emailSubject = "重置你的密码";
            event.response.emailMessage = `您好 ${event.request.userAttributes.name || event.userName},\n\n你的密码重置验证码是:{####}\n请在密码重置页面输入验证码并设置新密码。`;
            break;
        // 其他场景可以按需扩展,比如CustomMessage_ResendCode等
        default:
            // 保留默认模板(可选)
            break;
    }
    return event;
};

注意:代码中的{####}是Cognito自动替换为验证码的占位符,event.request.userAttributes里包含用户的注册属性(比如邮箱、昵称等),可以按需插入到邮件内容中。

步骤2:将Lambda函数关联到Cognito用户池

  1. 登录AWS Cognito控制台,打开你的用户池
  2. 切换到触发器标签页,找到自定义消息选项
  3. 从下拉列表中选择你刚才创建的Lambda函数,保存配置

步骤3:配置Lambda的IAM权限

确保Lambda函数拥有被Cognito调用的权限,你可以在Lambda的配置→权限→执行角色中,添加以下IAM策略(如果没有自动生成的话):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "你的Lambda函数ARN"
        }
    ]
}

另外,如果你的Cognito用户池使用自定义SES发送邮件,还要确保Cognito的服务角色拥有SES的发送权限。

测试验证

完成配置后,你可以分别测试注册流程和密码重置流程:

  • 注册新用户,检查收到的邮件主题和内容是否符合注册场景的配置
  • 发起密码重置请求,检查邮件是否切换为密码重置的模板

如果邮件没有正常生成,可以查看Lambda函数的监控→日志,排查是否有执行错误或逻辑问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:01:12