0

我正在开发一个使用AWS服务后端大小的Web应用程序。在这一刻,我使用AWS Cognito(用户池)来管理用户会话。错误:在我的Angular 4应用程序的配置中缺少凭据

我想要一个方法,可以帮助我让用户池的所有用户都可以在我的应用程序中显示它们。 这是我写的代码:

var cognitoidentity = new AWS.CognitoIdentityServiceProvider();

var params = { 
    UserPoolId: environment.userPoolId, 
    AttributesToGet: [ 
    'username', 
    ], 

}; 
cognitoidentity.listUsers(params, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // successful response 
}); 

不幸的是,我总是落在错误的情况下,并在控制台打印此:

Error: Missing credentials in config 
    at Request.extractError (json.js:48) 
    at Request.callListeners (sequential_executor.js:105) 
    at Request.emit (sequential_executor.js:77) 
    at Request.emit (request.js:683) 
    at Request.transition (request.js:22) 
    at AcceptorStateMachine.runTo (state_machine.js:14) 
    at state_machine.js:26 
    at Request.<anonymous> (request.js:38) 
    at Request.<anonymous> (request.js:685) 
    at Request.callListeners (sequential_executor.js:115) 

我在各方面尝试过的方法(甚至使用全局变量),但遗憾的是我不能让它运行。有谁知道我可以如何解决这个问题,我如何提供凭据?

回答

1

以下是您可以在推荐的顺序提供您的凭据的方法:

  1. 从AWS身份和访问管理(IAM)对亚马逊EC2的角色加载(如果在Amazon EC2上运行)

  2. 从共享凭证加载文件(〜/ .aws /凭证)

  3. 从环境变量加载

  4. 从JSON文件加载磁盘

http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html

// Load the AWS SDK for Node.js 
var AWS = require('aws-sdk'); 
// Load credentials and set region from JSON file 
AWS.config.loadFromPath('./config.json'); 

//Inline 
var creds = new AWS.Credentials('akid', 'secret', 'session'); 

或者您可以使用凭证提供商链,将搜索上面提到的所有供应商。

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CredentialProviderChain.html

​​

相关问题