signIn method
Signs in the given username
with the given password
and returns the AuthType of the sign-in process.
Implementation
@override
Future<AuthType> signIn(
String username,
String password,
) async {
final completer = Completer<AuthType>();
_amplifyAuth
.signIn(
username: username,
password: password,
)
.then(
(result) async {
_logger.fine('Successfully signed in: $result');
await _completeSignInNextStep(result.nextStep, completer);
},
).onError<aws_cognito.NotAuthorizedServiceException>(
(e, stackTrace) {
completer.completeError(
SignInNotAllowedException(
message: e.message,
innerException: e,
innerStackTrace: stackTrace,
),
);
},
).onError<aws_cognito.InvalidStateException>(
(e, stackTrace) {
// sign out the user to
// clear the invalid state
signOut();
completer.completeError(
SignInException(
message: 'failed to sign in user: ${e.message}',
innerException: e,
innerStackTrace: stackTrace,
),
);
},
).onError<aws_cognito.AuthException>(
(e, stackTrace) {
completer.completeError(
SignInException(
message: 'failed to sign in user: ${e.message}',
innerException: e,
innerStackTrace: stackTrace,
),
);
},
);
return completer.future;
}