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

AWS Cognito新用户重置密码异常:CodeDeliveryDetails返回错误邮箱

问题描述

我通过AWS控制台创建了一个新用户,该用户当前处于“Force change password”状态。我希望无需输入用户名和密码即可立即触发“忘记密码”流程,因此执行了如下请求:

curl --location 'https://cognito-idp.eu-central-1.amazonaws.com/' \
--header 'X-Amz-Target: AWSCognitoIdentityProviderService.ForgotPassword' \
--header 'Content-Type: application/x-amz-json-1.1' \
--data '{
    "ClientId":"aaaaaaaaabbbbbbbbcccccccdd",
    "Username":"brandnewuser"
}'

但收到如下响应:

{
    "CodeDeliveryDetails": {
        "AttributeName": "email",
        "DeliveryMedium": "EMAIL",
        "Destination": "t***@y***"
    }
}

问题在于返回的(掩码)邮箱不正确,应该是类似a***@a***的地址而非t***@y***,这会困扰我们的客户。请问原因是什么?应采取哪些措施,比如向AWS提交工单?


问题处理方案

可能的原因

  • 用户邮箱属性配置错误:创建用户时控制台填写的邮箱不符合预期,或者存在同名用户的残留数据(比如之前删除的用户未完全清理,导致属性混淆)
  • ClientId对应错误用户池:调用API使用的ClientId属于其他用户池,查询到的是其他池内同名用户的邮箱信息
  • Cognito数据缓存延迟:刚创建的用户数据未及时同步,API读取到了旧的属性缓存
  • Lambda触发器修改属性:用户池配置的PreSignUp、PostConfirmation等Lambda触发器,在用户创建后自动修改了邮箱属性

排查与解决步骤

  1. 核对用户真实邮箱:登录AWS控制台进入目标Cognito用户池,找到brandnewuser,查看其email属性的实际值,确认是否为预期的a***@a***
  2. 验证ClientId归属:确认调用API的aaaaaaaaabbbbbbbbcccccccdd这个ClientId,是否属于创建该用户的用户池
  3. 触发数据同步:如果是缓存问题,可在控制台临时修改用户的某个属性(比如添加一个临时自定义属性后删除),之后重新调用ForgotPassword API测试
  4. 检查触发器配置:查看用户池的触发器设置,确认有没有Lambda函数在用户创建流程中修改了邮箱属性
  5. 提交AWS支持工单:若以上排查均未解决问题,直接提交AWS支持工单,需提供以下信息以便快速定位:
    • 用户池ID和使用的ClientId
    • 用户名brandnewuser
    • API请求的时间戳和请求ID(可从CloudTrail日志中获取)
    • 控制台显示的用户邮箱与API返回掩码邮箱的对比信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 00:22:42