首页 文章

Cognito中的用户ID

提问于
浏览
-1

我使用AWS API Gateway AWS Cognito(联合身份用户池) . 我正在API网关中创建REST API . 有一些方法可以获取用户列表和获取用户ID . 我应该使用什么作为用户ID?

响应应包含以下用户数据:ID,用户名,名字,姓氏等 . 用户名,名字,姓氏存储在用户池属性中 .

我在examples中看到他们使用cognitoIdentityId作为用户ID . 如果我将使用cognitoIdentityId作为ID,那么我该如何通过此ID获取用户数据?请给我一个示例或链接到API参考如何通过cognitoIdentityId获取用户数据 .

1 回答

  • 0

    您应该能够使用用户名获取用户属性,如以下示例所示 .

    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());
        }
    });
    

    参考:Examples: Using the JavaScript SDK

    如果需要使用AccessToken查询用户属性,请使用以下示例 .

    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
    });
    

    参考:AWS JavaScript SDK GetUser

    注意:目前,AWS JavaScript SDK和API都不支持UserId获取用户属性 .

相关问题