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

AWS Cognito能否通过邮件链接携带验证码跳转至重置密码表单?

AWS Cognito 自定义忘记密码邮件链接问题解答

问题背景

我正尝试在AWS Cognito中实现以下逻辑:通过AWS Lambda捕获CustomMessage_ForgotPassword事件,Lambda函数返回包含重置验证码的HTML模板,同时添加一个按钮链接,用于将用户重定向至Cognito表单以输入验证码和新密码。

构造的链接为:

https://${ENVIRONMENT}/confirmForgotPassword?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_APP}&scope=openid%20profile%20email&response_type=token&user_name=${userName}&confirmation_code={####}

点击邮件内的链接后跳转至报错页面,期望跳转到正常的重置密码表单页面。

核心问题:是否可以通过邮件发送携带验证码的构造链接至该表单?

解答

  • 可行性结论:可以通过邮件发送携带验证码的链接接入重置密码流程,但直接使用Cognito托管UI无法实现预填验证码,且原链接的参数构造错误是跳转报错的原因。
  • 问题分析:
    • Cognito托管UI的confirmForgotPassword页面不支持通过URL参数confirmation_code预填验证码
    • 原链接中加入的response_type=token、scope等OAuth授权流参数属于错误组合,会导致页面识别异常
  • 正确处理方式:
    1. 使用标准托管UI链接:移除多余OAuth参数,仅保留必要参数,让用户手动输入验证码
      https://${ENVIRONMENT}/confirmForgotPassword?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_APP}&username=${userName}
      
    2. 实现自动填充验证码:需自行开发前端页面,通过链接携带username和confirmation_code参数,前端获取后可直接调用Cognito的confirmForgotPassword API,或自动填充至验证码输入框
  • 额外注意:确保redirect_uri已在Cognito用户池客户端的回调URL列表中配置,否则会触发跳转报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:45:39