AWS Cognito 托管 UI 忘记密码代码会发送到非注册电子邮件

问题描述 投票:0回答:1

我有简单的用例。我可以在 AWS Cognito 中手动创建用户。创建用户时,我手动输入 emailId(例如

[email protected]
)并选中
Mark email address as verified
复选框。创建用户后,确认状态将为强制更改密码

我可以使用 HostedUI 更改密码。我打开 HostedUI 并单击

**Forgot password**
链接,HostedUI 要求我输入用户名,我输入后它会向其他 emailId 发送电子邮件(例如 m****@y****.com (我不知道这个Id从哪里来))。

我可以确认其他emailId不是用户注册的emailId

问: 为什么 AWS Cognito 向未注册的 emailId 发送电子邮件,并从哪里提取未注册的 emailId?

注意: 这都是手动过程。另外,我确保注册的 emailId (

[email protected]
) 也已在简单电子邮件服务已验证电子邮件列表

中注册

更新:

我可以确认,无论如何,对于所有使用强制更改密码的用户,它只会向一个未注册的 emailId 发送电子邮件。

amazon-web-services amazon-cognito amazon-cognito-hosted-ui
1个回答
0
投票

当用户处于 FORCE_CHANGE_PASSWORD 状态时,无法根据 AWS re:Post Knowledge Center:

执行忘记密码流程

用户未处于 CONFIRMED 状态

管理员创建的用户默认处于 FORCE_CHANGE_PASSWORD 状态,直到他们使用提供的密码登录。然后,系统会提示用户更改密码。

如果用户状态为FORCE_CHANGE_PASSWORD,则无法使用ForgotPassword API调用,并且不会发送验证码。

为避免用户枚举,启用

PreventUserExistenceErrors
时,Cognito 应答会模拟将电子邮件/消息发送到虚构 地址/号码,如 Cognito 开发人员指南中所述:

忘记密码

当用户未找到、被停用或没有经过验证的传输机制来恢复其密码时,Amazon Cognito 将返回 CodeDeliveryDetails 以及用户的模拟传输介质。

在用户池客户端中禁用

PreventUserExistenceErrors
将显示真正的错误消息:
{"__type":"NotAuthorizedException","message":"User password cannot be reset in the current state."}

© www.soinside.com 2019 - 2024. All rights reserved.