程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 AWS Amplify 自定义 OTP 身份验证流程大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 AWS Amplify 自定义 OTP 身份验证流程?

开发过程中遇到使用 AWS Amplify 自定义 OTP 身份验证流程的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 AWS Amplify 自定义 OTP 身份验证流程的解决方法建议,希望对你解决使用 AWS Amplify 自定义 OTP 身份验证流程有所启发或帮助;

我目前已使用 Amplify 将 OTP 身份验证登录流程集成到 React Native 应用程序。流程如下。

(我遵循了此 article 中提供的指南)

使用 AWS Amplify 自定义 OTP 身份验证流程

但现在我需要提供将 OTP 代码发送到用户输入的电子邮件地址的选项,以防万一手机号码未收到该代码。

最初的想法是通过发送 create auth chALLENge 属性,通过放大 Auth.signUp 来触发 email lambda 函数。

import Auth from '@aws-amplify/auth';

const sendVerificationToEmail = async (phone: @R_696_10793@er,email: String,password: String) => {
  await Auth.signUp({ 
      username: phone,password,attributes: { 
         email 
      } });
} 

然后可以按如下方式重新修改 lambda 函数以发送电子邮件或短信,

...

const email = event.request.userAttributes.email;

if (email) {
  // Logic to send OTP verification code via SES
} else {
  // Logic to send OTP via SNS
}

但是这是不可能的,因为我们已经在 cognito 用户池中创建了一个用户。此属性不会传递给 lambda 函数。

实现这一目标的正确方法是什么?

解决方法

最简单的方法是,为自定义流设置 lambda 函数。

  1. 创建自定义方法以生成 OTP 并将其保存到表中 然后使用 SES 将 OTP 发送到电子邮件。

  2. 创建自定义方法来验证 OTP。

  3. 从表中检查 OTP 并进行验证。

 if(succesS)
        use admin to mark as verified

https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html

大佬总结

以上是大佬教程为你收集整理的使用 AWS Amplify 自定义 OTP 身份验证流程全部内容,希望文章能够帮你解决使用 AWS Amplify 自定义 OTP 身份验证流程所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。