setUserMFAPreference method
- required String accessToken,
- EmailMfaSettingsType? emailMfaSettings,
- SMSMfaSettingsType? sMSMfaSettings,
- SoftwareTokenMfaSettingsType? softwareTokenMfaSettings,
- WebAuthnMfaSettingsType? webAuthnMfaSettings,
Set the user's multi-factor authentication (MFA) method preference, including which MFA factors are activated and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are activated. If multiple options are activated and no preference is set, a challenge to choose an MFA option will be returned during sign-in. If an MFA type is activated for a user, the user will be prompted for MFA during all sign-in attempts unless device tracking is turned on and the device has been trusted. If you want MFA to be applied selectively based on the assessed risk level of sign-in attempts, deactivate MFA for users and turn on Adaptive Authentication for the user pool.
Authorize this action with a signed-in user's access token. It must
include the scope aws.cognito.signin.user.admin.
May throw ForbiddenException.
May throw InternalErrorException.
May throw InvalidParameterException.
May throw NotAuthorizedException.
May throw OperationNotEnabledException.
May throw PasswordResetRequiredException.
May throw ResourceNotFoundException.
May throw UserNotConfirmedException.
May throw UserNotFoundException.
Parameter accessToken :
A valid access token that Amazon Cognito issued to the currently signed-in
user. Must include a scope claim for
aws.cognito.signin.user.admin.
Parameter emailMfaSettings :
User preferences for email message MFA. Activates or deactivates email MFA
and sets it as the preferred MFA method when multiple methods are
available. To activate this setting, your user pool must be in the
Essentials tier or higher.
Parameter sMSMfaSettings :
User preferences for SMS message MFA. Activates or deactivates SMS MFA and
sets it as the preferred MFA method when multiple methods are available.
Parameter softwareTokenMfaSettings :
User preferences for time-based one-time password (TOTP) MFA. Activates or
deactivates TOTP MFA and sets it as the preferred MFA method when multiple
methods are available. Users must register a TOTP authenticator before
they set this as their preferred MFA method.
Parameter webAuthnMfaSettings :
User preferences for passkey MFA. Activates or deactivates passkey MFA for
the user. When activated, passkey authentication requires user
verification, and passkey sign-in is available when MFA is required. To
activate this setting, the FactorConfiguration of your user
pool WebAuthnConfiguration must be
MULTI_FACTOR_WITH_USER_VERIFICATION. To activate this
setting, your user pool must be in the
Essentials tier or higher.
Implementation
Future<void> setUserMFAPreference({
required String accessToken,
EmailMfaSettingsType? emailMfaSettings,
SMSMfaSettingsType? sMSMfaSettings,
SoftwareTokenMfaSettingsType? softwareTokenMfaSettings,
WebAuthnMfaSettingsType? webAuthnMfaSettings,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSCognitoIdentityProviderService.SetUserMFAPreference'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
signed: false,
// TODO queryParams
headers: headers,
payload: {
'AccessToken': accessToken,
if (emailMfaSettings != null) 'EmailMfaSettings': emailMfaSettings,
if (sMSMfaSettings != null) 'SMSMfaSettings': sMSMfaSettings,
if (softwareTokenMfaSettings != null)
'SoftwareTokenMfaSettings': softwareTokenMfaSettings,
if (webAuthnMfaSettings != null)
'WebAuthnMfaSettings': webAuthnMfaSettings,
},
);
}