【发布时间】:2021-10-06 19:08:06
【问题描述】:
我目前已将 OTP 身份验证登录流程集成到具有 Amplify 的 React Native 应用程序中。流程如下。
(我按照article 中提供的指南进行操作)
但现在我需要提供将 OTP 代码发送到用户输入的电子邮件地址的选项,以防手机号码未收到该代码。
最初的想法是通过发送email 属性来通过放大Auth.signUp 来触发create auth challenge lambda 函数。
import Auth from '@aws-amplify/auth';
const sendVerificationToEmail = async (phone: number, 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 函数。
实现这一目标的正确方法是什么?
【问题讨论】:
标签: amazon-web-services amazon-cognito aws-amplify amazon-sns amazon-ses