我正在开发一个使用 AWS 服务后端大小的 Web 应用程序。 目前,我使用 AWS Cognito 来管理用户 session 。 我正在使用 Angular 4(使用 TypeScript/JavaScript 语言)开发应用程序,我发现这个有用的类(在 AWS Cognito 的 JavaScript SDK 中)应该为我提供需要在前端显示的大量数据:
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html
问题是我在此对象上调用的任何方法,控制台都会返回此错误:
Error: Missing region in config
at Request.VALIDATE_REGION (event_listeners.js:91)
at Request.callListeners (sequential_executor.js:105)
at callNextListener (sequential_executor.js:95)
at event_listeners.js:85
at finish (config.js:315)
at Config.getCredentials (config.js:360)
at Request.VALIDATE_CREDENTIALS (event_listeners.js:80)
at Request.callListeners (sequential_executor.js:101)
at Request.emit (sequential_executor.js:77)
at Request.emit (request.js:683)
我不明白为什么会发生这种情况,因为我已经正确配置了区域,如下所示:
//Setting AWS credentials
AWS.config.region = environment.region;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId : environment.identityPoolId
});
如果我使用指令 console.log(AWS.config.region)
,控制台将打印正确的区域。
为什么它继续显示该错误?
完整代码:
var params = {
UserPoolId: environment.clientId,
};
//Setting AWS credentials
AWS.config.region = environment.region;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId : environment.identityPoolId
});
this.cognitoidentityserviceprovider.listUsers(params, function(err, data) {
console.log(AWS.config.region)
if (err) console.log(err); // an error occurred
else console.log(data); // successful response
});
路径始终为console.log(err),错误始终为配置中缺少区域。 为什么这种情况会持续发生?
最佳答案
如果你这样做怎么样:
var CognitoIdentityServiceProvider = AWS.CognitoIdentityServiceProvider;
var client = new CognitoIdentityServiceProvider({ apiVersion: '2016-04-19', region: 'us-east-1' });
然后你在客户端对象上调用listUsers?我相信在初始化服务客户端时应该传递区域。
关于javascript - AWS Cognito 与 Angular 4 : Error: Missing region in config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46340421/