Amazon web services AWSCognito配置错误中缺少区域

Amazon web services AWSCognito配置错误中缺少区域,amazon-web-services,aws-sdk,amazon-cognito,Amazon Web Services,Aws Sdk,Amazon Cognito,我在后端使用的是aws sdk javascript,我可以很好地使用aws,但是当我尝试使用getOpenIdTokenForDeveloperIdentity方法时,我得到一个“配置错误中缺少区域”作为响应 var config = new AWS.Config({ accessKeyId: "MYACCESSKEY", secretAccessKey: "MYSECRETYKEY", region: 'us-east-1' }); var params = { IdentityP

我在后端使用的是
aws sdk javascript
,我可以很好地使用
aws
,但是当我尝试使用
getOpenIdTokenForDeveloperIdentity
方法时,我得到一个
“配置错误中缺少区域”
作为响应

var config = new AWS.Config({
  accessKeyId: "MYACCESSKEY", secretAccessKey: "MYSECRETYKEY", region: 'us-east-1'
});

var params = {
  IdentityPoolId: 'MYIDENTITYPOOLID', /*   required */
  Logins: { /* required */
    "login.my.myapp": 'string',
    /* anotherKey: ... */
  },
  IdentityId: null,
  TokenDuration: 0
};

cognitoidentity.getOpenIdTokenForDeveloperIdentity(params,function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else console.log(data);               // successful response
});
文件中说:

默认情况下,凭据和区域设置保持未配置状态。这应该在使用任何AWS服务API之前由应用程序进行配置


所以我设置了我的区域,但为什么我仍然得到一个错误?

您正在本地
config
变量中设置区域。它应该在全局
AWS.config
中设置,如下所示:

AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'YOUR_POOL_ID'
});
这同样适用于凭证。如果您想为所有AWS客户端使用Amazon Cognito凭据,您应该像这样初始化
AWS.config.Credentials

AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'YOUR_POOL_ID'
});
我希望这有帮助

另见: