0

Cognito Javascript SDK示例片段包含以下标记:

cognitoUser.enableMFA(function(err, result) {
    if (err) {
        alert(err);
        return;
    }
    console.log('call result: ' + result);
});

Cognito 是否区分使用TOTP或 SMS 的 MFA?例如,上面的代码片段不允许我们选择我们想要的 MFA 类型,那么这是在池配置期间设置的吗?

一直滚动到示例文档的底部会显示以下代码示例:

totpMfaSettings = {
    PreferredMfa : true,
    Enabled : true
};
cognitoUser.setUserMfaPreference(null, totpMfaSettings, function(err, result) {
    if (err) {
        alert(err);
    }
    console.log('call result ' + result)
});

PreferredMFA参数似乎是一种奇怪的方式来指定首选 TOTP。那么我们是否会默认为 SMS MFA 设置用户,然后使用如上所示的 API 调用将他们切换到 TOTP?此外,我们如何传递初始 TOTP QRCode / 种子以及用户使用哪个 TOTP 应用程序?

4

1 回答 1

1

在我看来,AWS Cognito 文档和 API 非常混乱,这里的“enableMFA”“disableMFA”仅表示 SMS MFA。如果要在 SMS 和 TOTP 之间进行选择,请使用 cognitoUser.setUserMfaPreference。此外,AWS.CognitoIdentityServiceProvider.getUser API 允许您检查 MFA 首选项。

于 2018-07-04T01:12:06.743 回答