Настроен ли тип используемого Cognito MFA при настройке пула?

Фрагменты примера Cognito Javascript SDK содержат следующую разметку:

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

Различает ли Cognito MFA с помощью TOTP или SMS? Например, приведенный выше фрагмент не позволяет нам выбрать, какой тип 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 по умолчанию, а затем переключим их на TOTP с помощью вызова API, как показано выше? Кроме того, как мы передаем начальный TOTP QRCode / seed и какое приложение TOTP использует пользователь?

1 ответ

Решение

Мне кажется, что документация и API AWS Cognito очень запутаны, и здесь "enableMFA", "disableMFA" означает только SMS MFA. Если вы хотите выбрать между SMS и TOTP, используйте cognitoUser.setUserMfaPreference. Кроме того, API AWS.CognitoIdentityServiceProvider.getUser позволяет проверять предпочтения MFA.

Другие вопросы по тегам