AWS Cognito设置验证类型为链接却仍发送验证码问题排查
排查Cognito验证链接无法发送的问题
以下是几个可能遗漏的配置点,按优先级检查:
- 检查邮件模板的占位符:进入用户池的「Message customizations」→「Verification message」,当验证类型选「Link」时,模板内容必须包含链接占位符(比如
{##Verify Email##}),如果模板里还是用的验证码占位符{####},系统只会发送验证码邮件,不会生成链接。 - 确认应用客户端权限:在用户池的「App clients」中找到你使用的客户端,检查是否开启了支持链接验证的相关设置(比如「Enable sign-in API for server-based authentication」),部分客户端配置会覆盖用户池的全局验证类型设置。
- 验证Cognito域名状态:确保你配置的Cognito域名状态为「Active」,如果域名处于部署或未生效状态,Cognito会自动降级为验证码模式,无法生成验证链接。
- 排查自定义Lambda触发器:如果配置了预发送邮件的Lambda触发器,检查函数代码是否硬编码了发送验证码的逻辑,没有根据事件中的
verificationType参数动态切换内容。比如事件里会传verificationType: "LINK"或"CODE",需要根据这个值生成对应的邮件内容。 - 测试标准格式邮箱:如果用户邮箱格式不符合规范(含特殊字符、格式错误),Cognito可能会跳过链接验证,改用验证码。先用一个标准的邮箱(比如xxx@example.com)测试,排除邮箱格式问题。
内容的提问来源于stack exchange,提问作者iii
相关产品推荐
相关产品推荐

