reactjs 放大和React:代码不匹配,无法启用软件令牌MFA

rsl1atfo  于 2023-01-04  发布在  React
关注(0)|答案(1)|浏览(142)

我有一个Cognito用户池,它的MFA设置为Optional,仅限TOTP。
我正在尝试设置一个页面,该页面将首次为遵循此AWS文档的用户启用MultiFactorAuthentication。
在安装组件时,我生成一个QR代码,并使用qrcode.react将其显示在屏幕上

useEffect(() => {
Auth.currentAuthenticatedUser({ bypassCache: true }).then(user => {
  setUser(user);
  Auth.setupTOTP(user).then(code => {
    const authCode = "otpauth://totp/AWSCognito:" + user.username + "?secret=" + code + "&issuer=ivt";
    setQrCode(authCode);
  });
});
}, []);

然后,当用户输入时,我验证它并调用setPrefferredMFA。现在,我检查“input”是否正确传递,是否没有问题。

const setupMFA = input => {
Auth.setupTOTP(user).then(() => {
  Auth.verifyTotpToken(user, input)
    .then(() => {
      Auth.setPreferredMFA(user, "TOTP").then(() => {
        props.setShowModal(false);
      });
    })
    .catch(e => {
      // Token is not verified
    });
});
};

我仍然收到代码不匹配和无法启用软件令牌MFA错误,无法为用户设置MFA。

mcdcgff0

mcdcgff01#

我解决了。
验证TotpToken()不应位于setupTOTP的.then()块中。
Pfft.去掉setupMFA函数中的Auth.setupTOTP使它工作起来。

相关问题