是否在池设置期间配置了Cognito MFA的类型?

时间:2018-04-14 02:50:30

标签: javascript amazon-web-services amazon-cognito totp mfa

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

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

Cognito是否使用TOTP或短信来区分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应用程序?

1 个答案:

答案 0 :(得分:1)

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