Настроен ли используемый тип 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, как показано выше? Также как передать начальный QR-код / ​​начальное значение TOTP и какое приложение TOTP использует пользователь?




Ответы (1)


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

person Bing Ren    schedule 04.07.2018