有没有办法在不提供新密码的情况下验证 AWS Cognito 密码重置确认码?

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

我正在开发一个 React Native 应用程序,该应用程序使用 AWS Cognito 通过 aws-amplify 库进行身份验证。我目前正在实施“忘记密码”功能。

在重置用户密码的过程中,我可以调用:

await confirmResetPassword({
  username: "[email protected]",
  confirmationCode: "123456",
  newPassword: "hunter3",
});

此函数需要在一次调用中同时获得确认码和新密码。

但是,我想首先验证确认码(检查其是否有效),然后,一旦验证码,提示用户设置新密码。

AWS Cognito 中是否有任何方法(使用 aws-amplify 或任何其他方法)单独验证确认码,而无需立即提供新密码?理想情况下,我只想传递用户名和确认代码,并获得有关代码是否有效的响应。

任何建议或替代方法表示赞赏!

javascript react-native amazon-cognito aws-amplify
1个回答
0
投票

AWS Cognito 身份提供商 API 在请求中需要新密码和确认代码。请参阅 ConfirmForgotPasswordCommand

的文档

如果您想轻松地保留此过程,您可以简单地推迟对真实请求的确认,并在失败时从确认代码步骤重新启动。

替代方案的安全考虑

  • 尽可能保护好确认码。你承担责任。
  • 不要传递有关电子邮件或确认码是否不正确的(详细)信息。
另一种选择是

    实施
  1. 自定义电子邮件发件人 Lambda 触发器 .
  2. 将电子邮件发件人的确认码存储在数据库中。
  3. 实现自定义确认码验证端点。
© www.soinside.com 2019 - 2024. All rights reserved.