signUp method
Signs up the given user
with the given password
Implementation
@override
Future<Verification> signUp(
User user,
String password,
) async {
final completer = Completer<Verification>();
_amplifyAuth
.signUp(
username: user.username,
password: password,
options: aws_cognito.SignUpOptions(
userAttributes: {
AuthUserAttributeKey.email: user.emailAddress,
AuthUserAttributeKey.phoneNumber: user.mobilePhone,
},
),
)
.then(
(result) {
_logger.fine('Successful sign up: $result');
final nextStep = result.nextStep;
switch (nextStep.signUpStep) {
case aws_cognito.AuthSignUpStep.confirmSignUp:
_enqueueEvent(SignedUpEvent(user));
completer.complete(_createVerificationResult(
VerificationFlow.signUp,
nextStep.codeDeliveryDetails,
));
break;
case aws_cognito.AuthSignUpStep.done:
_enqueueEvent(SignedUpEvent(user));
completer.complete(
Verification(
isConfirmed: true,
flow: VerificationFlow.signUp,
),
);
break;
}
},
).onError<aws_cognito.UsernameExistsException>((e, stackTrace) {
completer.completeError(
UsernameExistsException(
message: 'username already exists',
innerException: e,
innerStackTrace: stackTrace,
),
);
}).onError<aws_cognito.AuthException>((e, stackTrace) {
completer.completeError(
SignUpException(
message: 'failed to sign up user',
innerException: e,
innerStackTrace: stackTrace,
),
);
});
return completer.future;
}