1

我正在使用 aws-amplify (Vue/TypeScript) 实现身份验证组件。使用 forgotPassword(userName: string),我正在尝试向目标电子邮件地址发送验证码。 https://aws-amplify.github.io/amplify-js/api/classes/authclass.html#forgotpassword

import { Auth } from 'aws-amplify'
...
await Auth.forgotPassword(emailAddress)

在此处输入图像描述

但是,对于不是 Cognito 用户之一的无效电子邮件地址,它会返回此成功消息。

{"CodeDeliveryDetails":{"AttributeName":"email","DeliveryMedium":"EMAIL","Destination":"****@d***.com"}}

我想要的是这个。

{"__type":"UserNotFoundException","message":"Username/client id combination not found."}

我怀疑 AWS Cognito 上的错误配置,但不知道要更改什么..

4

3 回答 3

2

访问您的用户池

转到左侧导航栏中的应用程序客户端

然后向下滚动到Security configuration

请在“防止用户存在错误”下选择旧版

注意:- 默认选项是启用(推荐)。此默认选项是实际根本原因。

在此处输入图像描述 在此处输入图像描述

现在,当您输入错误的用户名[在我的情况下是电子邮件 ID] 时,它会抛出异常。

在此处输入图像描述

在此处输入图像描述

如果您输入了正确的用户名[在我的情况下是电子邮件 ID],那么它会发送验证码

在此处输入图像描述 在此处输入图像描述

于 2021-06-02T02:36:57.260 回答
1

您可以在应用程序客户端设置中将防止用户存在错误设置为旧版。通过这样做,如果用户池中不存在电子邮件,您将收到错误消息。

于 2021-02-17T09:17:53.513 回答
0

AWS Cognito:管理错误响应

当未找到用户、被禁用或没有恢复密码的机制时,Amazon Cognito 会返回 CodeDeliveryDetails 并为用户提供模拟交付媒介。模拟传递媒介由输入的用户名格式和用户池的验证设置决定。

我需要检查 Cognito 配置。

于 2020-11-26T14:03:55.173 回答