AWS Cognito:获取用户列表的方法?

cla*_*ioz 6 amazon-web-services typescript aws-cognito angular

我正在使用 Angular 4(使用 TypeScript 语言)前端开发 Web 应用程序,并使用 AWS 服务后端大小。此应用程序只能由一组用户访问(每个用户都有自己的邮件和密码)。这组用户在 AWS Cognito - 用户池中定义。我怎样才能拥有这些用户的完整列表及其属性,以便在前端看到她?以及如何仅在前端更改它们的属性?

我看到了 AWS Cognito ( https://github.com/aws/amazon-cognito-identity-js )的 JavaScript 方法,但我没有找到任何我想做的事情。

我想使用某种方法来显示用户及其属性的完整列表(如 Cognito 的 AWS 管理控制台中所见),而且由于另一种方法,我的应用程序始终能够将一些信息作为“组”进行编辑一个用户。

谁能告诉我这是否可能?

Zec*_*ide 6

回复较晚,但对于那些可能需要它的人来说:

  1. 创建新的 IAM 策略,并允许 Cognito 列表用户

  2. JS中的代码

    const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({
         apiVersion: '2016-04-18',
         region: "eu-central-1",
         credentials: Auth.essentialCredentials(credentials)
       });
       var params = {
         UserPoolId: environment.amplify.Auth.userPoolId, /* required */
         AttributesToGet: [
           "email",
         ],
         Limit: 0
       };
       cognitoidentityserviceprovider.listUsers(params, function (err, data) {
         if (err) console.log(err, err.stack); // an error occurred
         else console.log(data);           // successful response
       });
     });
    
    Run Code Online (Sandbox Code Playgroud)


Ped*_*lva 6

该函数将列出用户,只需使用aws密钥和秘密、用户池区域和id并调用函数getUsers()。您可以在参数中使用过滤器来执行更具体的请求。https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html#listUsers-property

var AWS = require('aws-sdk');

exports.getUsers= () => {
var params = {
  UserPoolId: USER_POOL_ID
  AttributesToGet: [
    'ATTRIBUTE_NAME',
  ],
};

return new Promise((resolve, reject) => {
    AWS.config.update({ region: USER_POOL_REGION, 'accessKeyId': AWS_ACCESS_KEY_ID, 'secretAccessKey': AWS_SECRET_KEY });
    var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
    cognitoidentityserviceprovider.listUsers(params, (err, data) => {
        if (err) {
            console.log(err);
            reject(err)
        }
        else {
            console.log("data", data);
            resolve(data)
        }
    })
});
Run Code Online (Sandbox Code Playgroud)

}


Joh*_*ley 0

查看 Cognito 身份服务提供商SDK

你想要的功能是listUsers().