adminSetUserMFAPreference method
Sets the user's multi-factor authentication (MFA) preference, including which MFA options 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.
Learn more
- Signing Amazon Web Services API Requests
- Using the Amazon Cognito user pools API and user pool endpoints
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 userPoolId :
The ID of the user pool where you want to set a user's MFA preferences.
Parameter username :
The name of the user that you want to query or modify. The value of this
parameter is typically your user's username, but it can be any of their
alias attributes. If username isn't an alias attribute in
your user pool, this value must be the sub of a local user or
the username of a user from a third-party IdP.
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.
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> adminSetUserMFAPreference({
required String userPoolId,
required String username,
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.AdminSetUserMFAPreference'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'UserPoolId': userPoolId,
'Username': username,
if (emailMfaSettings != null) 'EmailMfaSettings': emailMfaSettings,
if (sMSMfaSettings != null) 'SMSMfaSettings': sMSMfaSettings,
if (softwareTokenMfaSettings != null)
'SoftwareTokenMfaSettings': softwareTokenMfaSettings,
if (webAuthnMfaSettings != null)
'WebAuthnMfaSettings': webAuthnMfaSettings,
},
);
}