Skip to content

Instantly share code, notes, and snippets.

@viralsavaniIM
Created December 7, 2022 21:30
Show Gist options
  • Save viralsavaniIM/df25cf3c58dbc86b3a7a4ffa9abc1655 to your computer and use it in GitHub Desktop.
Save viralsavaniIM/df25cf3c58dbc86b3a7a4ffa9abc1655 to your computer and use it in GitHub Desktop.
Perform Login with AWS Cognito Identity JS SDK
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2021 Facebank, Inc. //
// All rights reserved. //
// //
// Redistribution and use in source and binary forms, with or without //
// modification, are permitted provided that the following conditions are //
// met: //
// //
// Redistributions of source code must retain the above copyright //
// notice, this list of conditions and the following disclaimer. //
// Redistributions in bytecode form must reproduce the above copyright //
// notice, this list of conditions and the following disclaimer in //
// the documentation and/or other materials provided with the //
// distribution. //
// //
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS //
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT //
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR //
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT //
// HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, //
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS //
// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND //
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR //
// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE //
// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH //
// DAMAGE. //
///////////////////////////////////////////////////////////////////////////////
const AmazonCognitoIdentity = require("amazon-cognito-identity-js"); // npm install amazon-cognito-identity-js
const fetch = require("node-fetch"); // npm install node-fetch@2 for require(nonESM)
// REQUIRED FIELDS
const username = '***';
const password = '***';
const cognitoPoolId = '***';
const cognitoClientId = '***';
const authenticationData = {
Username: username,
Password: password,
};
const poolData = {
UserPoolId: cognitoPoolId,
ClientId: cognitoClientId
};
const authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(
authenticationData
);
const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
const userData = {
Username: authenticationData.Username,
Pool: userPool,
};
const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: async (result) => {
try {
console.log(`Success: ${JSON.stringify(result, null, 2)}`);
} catch (e) {
console.error(e);
}
},
onFailure: (err) => {
console.error(`*** FAILURE ${authenticationData.Username}`);
console.error(JSON.stringify(err, null, 2));
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment