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

​​

相關問題