通过电子邮件而不是短信发送 OTP -Cognito

问题描述

有没有办法通过电子邮件而不是短信发送一次性密码? SMS 在不同国家/地区有很多限制和规定,而 TOTP 恰好对非技术用户不友好。 我知道我可以拥有自定义流程,但我们希望继续使用 Amplify 进行登录。在 Cognito 服务中实现这一目标的最直接方法是什么?

解决方法

不,您不能使用 Amplify

import { Auth } from 'aws-amplify';

##您可以选择首选的 mfa 类型,例如: ##选择TOTP作为首选

Auth.setPreferredMFA(user,'TOTP').then((data) => {
    console.log(data);
    // ...
}).catch(e => {});

// 选择短信为首选

Auth.setPreferredMFA(user,'SMS');

// 选择 no-mfa

Auth.setPreferredMFA(user,'NOMFA');