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

时间:2017-09-18 13:44:37

标签: angular amazon-web-services typescript aws-cognito

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

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

我想使用某种方法来显示具有其属性的完整用户列表(如Cognito的AWS管理控制台中所示) 并且总是,由于另一种方法,我的应用程序能够将一些信息编辑为" group"用户。

有人可以告诉我这是否可能?

3 个答案:

答案 0 :(得分:1)

最新反应,但对于可能需要它的人:

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

答案 1 :(得分:0)

查看Cognito Identity Service Provider SDK。

SDK Link

想要的功能是listUsers();

答案 2 :(得分:0)

此函数将列出用户,仅使用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)
        }
    })
});

}