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应用程序?
答案 0 :(得分:1)
在我看来,AWS Cognito文档和API非常令人困惑,此处的“ enableMFA”,“ disableMFA”仅表示SMS MFA。如果要在SMS和TOTP之间进行选择,请使用cognitoUser.setUserMfaPreference。另外,AWS.CognitoIdentityServiceProvider.getUser API允许您检查MFA首选项。