validateMFACode method
Validates the given multi-factor authentication code
Implementation
Future<void> validateMFACode(
String code,
) async {
emit(state.startLoading(validateMFALoading));
try {
final authType = await provider.validateMFACode(code);
final isLoggedIn = authType == AuthType.authDone;
emit(state.copyWith(
session: isLoggedIn ? state.session.touch() : null,
isLoggedIn: isLoggedIn,
resetAwaitingLogin: isLoggedIn,
// ignored if resetAwaitingLogin is true
awaitingLogin: authType,
));
} on InvalidCodeException catch (error, stackTrace) {
emit(state.addMessage(
Message.error(_localizations.invalidMFACode),
error,
stackTrace,
));
} on ExpiredCodeException catch (error, stackTrace) {
emit(state.addMessage(
Message.error(_localizations.expiredVerificationCode),
error,
stackTrace,
));
} on MFACodeValidationException catch (error, stackTrace) {
emit(state.addMessage(
Message.error(
_localizations.mfaCodeValidationError(error.message),
),
error,
stackTrace,
));
} finally {
emit(state.endLoading(validateMFALoading));
}
}