adminSetUserMFAPreference method

Future<void> adminSetUserMFAPreference({
  1. required String userPoolId,
  2. required String username,
  3. SMSMfaSettingsType? sMSMfaSettings,
  4. SoftwareTokenMfaSettingsType? softwareTokenMfaSettings,
})

Sets the user's multi-factor authentication (MFA) preference, including which MFA options are enabled 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 enabled. If multiple options are enabled and no preference is set, a challenge to choose an MFA option will be returned during sign in.

May throw ResourceNotFoundException. May throw InvalidParameterException. May throw NotAuthorizedException. May throw PasswordResetRequiredException. May throw UserNotFoundException. May throw UserNotConfirmedException. May throw InternalErrorException.

Parameter userPoolId : The user pool ID.

Parameter username : The user pool username or alias.

Parameter sMSMfaSettings : The SMS text message MFA settings.

Parameter softwareTokenMfaSettings : The time-based one-time password software token MFA settings.

Implementation

Future<void> adminSetUserMFAPreference({
  required String userPoolId,
  required String username,
  SMSMfaSettingsType? sMSMfaSettings,
  SoftwareTokenMfaSettingsType? softwareTokenMfaSettings,
}) async {
  ArgumentError.checkNotNull(userPoolId, 'userPoolId');
  _s.validateStringLength(
    'userPoolId',
    userPoolId,
    1,
    55,
    isRequired: true,
  );
  ArgumentError.checkNotNull(username, 'username');
  _s.validateStringLength(
    'username',
    username,
    1,
    128,
    isRequired: true,
  );
  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 (sMSMfaSettings != null) 'SMSMfaSettings': sMSMfaSettings,
      if (softwareTokenMfaSettings != null)
        'SoftwareTokenMfaSettings': softwareTokenMfaSettings,
    },
  );
}