4.2.1 Using user pools with AWS Mobile SDK

Here are the details about registering, confirming, and authenticating users using standard AWS Mobile SDK.

Creating an AWSCognitoIdentityUserPool Object

The following procedure describes how to create an AWSCognitoIdentityUserPool object to interact with.

// Create a user pool with default ClientConfiguration
CognitoUserPool userPool = new CognitoUserPool(context, userPoolId, clientId, clientSecret, cognitoRegion);

OR

// This will also work
ClientConfiguration clientConfiguration = new ClientConfiguration();
AmazonCognitoIdentityProvider cipClient = new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials(), clientConfiguration);
cipClient.setRegion(Region.getRegion(cognitoRegion));
CognitoUserPool userPool = new CognitoUserPool(context, userPoolId, clientId, clientSecret, cipClient);

Register a User

Use userPool.signUpInBackground method to sign up a user.

SignUpHandler signupCallback = new SignUpHandler() {

    @Override
    public void onSuccess(CognitoUser cognitoUser, SignUpResult signUpResult) {
        // Sign-up was successful

        // Check if this user (cognitoUser) needs to be confirmed
        if(!signUpResult.getUserConfirmed()) {
            // This user must be confirmed and a confirmation code was sent to the user
            // cognitoUserCodeDeliveryDetails will indicate where the confirmation code was sent
            // Get the confirmation code from user
        }
        else {
            // The user has already been confirmed
        }
    }

    @Override
    public void onFailure(Exception exception) {
        // Sign-up failed, check exception for the cause
    }
};

// API call
userPool.signUpInBackground(userId, password, userAttributes, null, signupCallback);

Confirm Signup

Confirm a user's sign up with the confirmation code using user.confirmSignUp method

Sign in a User

Use cognitoUser.getSessionInBackground method to get a session with the username and password.

Sign out a user

Use cognitoUser.signOut method to log a user out.

Last updated

Was this helpful?