To start provisioning auth resources in the backend, go to your project directory and execute the command:
amplify add auth
Enter the following when prompted:
? Do you want to use the default authentication and security configuration?
`Default configuration`
? How do you want users to be able to sign in?
`Username`
? Do you want to configure advanced settings?
`No, I am done.`
To push your changes to the cloud, execute the command:
amplify push
Add the following dependency to your app’s build.gradle along with others you added above in Prerequisites and click “Sync Now” when prompted:
dependencies {
implementation 'com.amplifyframework:aws-auth-cognito:1.28.3'
}
Add the Auth plugin before calling Amplify.configure
// Add this line, to include the Auth plugin.
Amplify.addPlugin(new AWSCognitoAuthPlugin());
Amplify.configure(getApplicationContext());
We can now check the current auth session.
For testing purposes, you can run this from your MainActivity’s onCreate method.
Amplify.Auth.fetchAuthSession(
result -> Log.i("AmplifyQuickstart", result.toString()),
error -> Log.e("AmplifyQuickstart", error.toString())
);
The default CLI flow as mentioned in the getting started guide requires a username, password and a valid email id as parameters to register a user. Invoke the following api to initiate a sign up flow.
AuthSignUpOptions options = AuthSignUpOptions.builder()
.userAttribute(AuthUserAttributeKey.email(), "my@email.com")
.build();
Amplify.Auth.signUp("username", "Password123", options,
result -> Log.i("AuthQuickStart", "Result: " + result.toString()),
error -> Log.e("AuthQuickStart", "Sign up failed", error)
);
The next step in the sign up flow is to confirm the user. A confirmation code will be sent to the email id provided during sign up. Enter the confirmation code received via email in the confirmSignUp call.
Amplify.Auth.confirmSignUp(
"username",
"the code you received via email",
result -> Log.i("AuthQuickstart", result.isSignUpComplete() ? "Confirm signUp succeeded" : "Confirm sign up not complete"),
error -> Log.e("AuthQuickstart", error.toString())
);
You will know the sign up flow is complete if you see the following in your console window:
Confirm signUp succeeded
Implement a UI to get the username and password from the user. After the user enters the username and password you can start the sign in flow by calling the following method:
Amplify.Auth.signIn(
"username",
"password",
result -> Log.i("AuthQuickstart", result.isSignInComplete() ? "Sign in succeeded" : "Sign in not complete"),
error -> Log.e("AuthQuickstart", error.toString())
);
You will know the sign in flow is complete if you see the following in your console window:
Sign in succeeded