validateMFACode method
Validates the given multi-factor authentication with
the given code
and returns the AuthType of the
sign-in process.
Implementation
@override
Future<AuthType> validateMFACode(
String code,
) async {
final completer = Completer<AuthType>();
_amplifyAuth
.confirmSignIn(
confirmationValue: code,
)
.then(
(result) async {
_logger.fine('Successfully validated MFA code: $result');
await _completeSignInNextStep(result.nextStep, completer);
},
).onError<aws_cognito.CodeMismatchException>((e, stackTrace) {
completer.completeError(
InvalidCodeException(
message: e.message,
innerException: e,
innerStackTrace: StackTrace.current,
),
);
}).onError<aws_cognito.ExpiredCodeException>((e, stackTrace) {
completer.completeError(
ExpiredCodeException(
message: e.message,
innerException: e,
innerStackTrace: StackTrace.current,
),
);
}).onError<aws_cognito.AuthException>((e, stackTrace) {
completer.completeError(
MFACodeValidationException(
message: 'Failed to validate MFA code for user login',
innerException: e,
innerStackTrace: StackTrace.current,
),
);
});
return completer.future;
}