AWS Coginto API,忘记密码操作不会引发 InvalidParameterException,即使既不存在经过验证的电话号码也不存在经过验证的电子邮件

ume*_*mer 7 javascript amazon-web-services reactjs amazon-cognito aws-amplify

根据文档所述 https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html如果用户尚未验证他的电子邮件或电话号码,则

Auth.forgotPassword(username)
Run Code Online (Sandbox Code Playgroud)

应该返回一些错误消息。如文档中所写

如果验证的电话号码和验证的电子邮件均不存在,则会引发 InvalidParameterException。

但这并没有引发异常,相反,我收到了成功响应。

"CodeDeliveryDetails":{"AttributeName":"email","DeliveryMedium":"EMAIL","Destination":"m***@g***.com"}}
Run Code Online (Sandbox Code Playgroud)

但我没有收到电子邮件。

可能是什么原因?

小智 8

我看到了同样的问题。事实证明与此相关:

使用用户池应用程序客户端的 PreventUserExistenceErrors 设置来启用或禁用与用户存在相关的错误。

这里提到: https: //docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-managing-errors.html

将用户池上的设置从“已启用”更改为“旧版”后,我开始看到 400 响应:

{
  "__type": "UserNotFoundException",
  "message": "Username/client id combination not found."
}
Run Code Online (Sandbox Code Playgroud)