使用React js发送SMS而不是电子邮件的aws-amplify忘记密码功能

时间:2019-06-18 04:48:43

标签: reactjs amazon-web-services aws-amplify

我使用aws-amplify构建了一个应用,该应用允许使用Cognito用户登录。但是,Auth.forgotPassword似乎正在向移动设备而不是EMAIL发送短信。如何更改行为以使其发送电子邮件?

以下是相关代码:

Auth.forgotPassword(this.state.username)
  .then(data => this.setState({instruction: 'An email has been sent to your email with a temporary password.', usernameError: false, passwordError: false}))
  .catch(err => this.setState({instruction: err.message, usernameError: false, passwordError: false}));

1 个答案:

答案 0 :(得分:0)

您可以配置在AWS Cognito控制台中触发forgotPassword API时需要验证的内容。

Amazon Cognito>管理用户池>选择您的池>常规设置> MFA和验证> Which attributes do you want to verify?

此外,当您触发ForgotPassword API时,也会得到CodeDeliveryDetails对象作为响应

const result = await Auth.forgotPassword(username);

console.log(result);

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

从结果中,您可以了解使用哪种媒体传递代码,并相应地在应用程序中通知用户。