Jerald
Jerald

Reputation: 4048

User ID in Cognito

I use AWS API Gateway + AWS Cognito (Federated Identity + User Pool). I'm creating REST API in API Gateway. There are methods for getting users list and for getting user by id. What should I use as user ID?

Response should contain te following user data: ID, username, first name, last name etc. Username, first name, last name are stored in User Pool attributes.

I see in examples that they use cognitoIdentityId as User ID. If I will use cognitoIdentityId as ID, then how should I get user data by this ID? Please give me an example or link to API reference how to get user data by cognitoIdentityId.

Upvotes: 0

Views: 10640

Answers (1)

Ashan
Ashan

Reputation: 19748

You should be able to get user attributes as shown in the following example using the Username.

var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1'; //This is required to derive the endpoint
var poolData = { UserPoolId : 'us-east-1_TcoKGbf7n',
    ClientId : '4pe2usejqcdmhi0a25jp4b5sh3'
};
var userPool = new AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var userData = { 
                Username : 'username',
                Pool : userPool
            };
var cognitoUser = new AWS.CognitoIdentityServiceProvider.CognitoUser(userData);

cognitoUser.getUserAttributes(function(err, result) {
    if (err) {
        alert(err);
        return;
    }
    for (i = 0; i < result.length; i++) {
        console.log('attribute ' + result[i].getName() + ' has value ' + result[i].getValue());
    }
});

Reference: Examples: Using the JavaScript SDK

If you need to query the user attributes using AccessToken, then use the following example.

var params = {
  AccessToken: 'STRING_VALUE' /* required */
};
cognitoidentityserviceprovider.getUser(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

Reference: AWS JavaScript SDK GetUser

Note: Currently there is no support in both AWS JavaScript SDK and API to get the user attributes by UserId.

Upvotes: 0

Related Questions