Cognito邮箱更新验证报错:Username/client id combination not found
Cognito 修改邮箱验证报错及登录异常问题解决
一、验证新邮箱时出现 UserNotFoundException 的解决方法
当启用“更新待处理时保持原始属性值有效”后,新邮箱处于待验证状态,此时用户的唯一标识仍是原始用户名(或旧邮箱,若用邮箱作为用户名)。出现该错误的核心原因是调用验证接口时误用了新邮箱作为Username参数,系统无法识别这个尚未生效的标识。
解决步骤:
- 调用
VerifyUserAttribute接口时,Username参数必须传入用户当前的有效用户名(旧邮箱或初始创建的用户名),而不是新邮箱。 - 接口参数示例:
// 正确示例(Node.js) const params = { UserPoolId: '你的用户池ID', Username: '用户当前的有效用户名(旧邮箱/初始用户名)', AttributeName: 'email', Code: '新邮箱收到的验证码' }; cognitoidentityserviceprovider.verifyUserAttribute(params, (err, data) => { // 处理结果 });
二、未验证邮箱可作为别名登录的原因及调整
AWS文档提到“用户需要已验证的联系信息才能使用邮箱/电话作为别名登录”,但实际可以登录是因为用户池开启了允许未验证别名登录的配置:
- 进入用户池控制台,依次点击「登录体验」→「别名」;
- 检查是否勾选了「允许使用未验证的联系信息登录」,若需要遵循文档要求,取消该勾选即可。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

