PhuongHoang6897
PhuongHoang6897

Reputation: 11

Adding multiple users to my UI for AWS Cognito

My current log-in page is built using Astro.js and AWS Cognito. I have one user set-up on Cognito and that user could log-in to the app using the credentials I specify on Cognito and in the codes for the utils file for the log-in page, as shown below:

import { CognitoUserPool, CognitoUser, AuthenticationDetails } from 'amazon-cognito-identity-js';

// Configure Cognito
const poolData = {
    UserPoolId: 'xyz',
    ClientId: 'xyz',
};

const userPool = new CognitoUserPool(poolData);
var sessionUserAttributes;
// Function to sign in
export const signIn = (username, password) => {
    const authenticationData = {
        Username: username,
        Password: password,
    };

    const authenticationDetails = new AuthenticationDetails(authenticationData);

    const userData = {
        Username: username,
        Pool: userPool,
    };

    const cognitoUser = new CognitoUser(userData);

    cognitoUser.authenticateUser(authenticationDetails, {
        onSuccess: (session) => {
            console.log('Authentication successful');
            // You can redirect or update your app's UI here
            window.location.reload(false);
        },
        onFailure: (err) => {
            console.error('Authentication failed', err);
        },
        newPasswordRequired: (userAttributes, requiredAttributes) => {
            // User was signed up by an admin and must provide new
            // password and required attributes, if any, to complete
            // authentication.

            // the api doesn't accept this field back
            delete userAttributes.email_verified;
            delete userAttributes.email; 

            userAttributes.given_name = "xyz"
            userAttributes.family_name = "xyz"
            userAttributes.phone_number = "xyz"

            console.log('userAttributes', userAttributes)
            console.log('requiredAttributes', requiredAttributes)

            // store userAttributes on global variable
            sessionUserAttributes = userAttributes;
            cognitoUser.completeNewPasswordChallenge("xyz", sessionUserAttributes);
            
        },
    });
};

The issue is when I add in multiple users on Cognito, the new users can't log-in to the app even though on Cognito, the new users are shown to have been verified. How can I rewrite my code above to add in an array of users (including Username & Password) so I could have multiple users logging in?

Thank you

Upvotes: 1

Views: 90

Answers (0)

Related Questions