AWSCognito отсутствует регион в конфигурации ошибка


Я использую aws-sdk javascript в моем бэк-энде, и я могу использовать AWS отлично, но когда я пытаюсь использовать метод getOpenIdTokenForDeveloperIdentity, я получаю "Missing region in config error" в качестве ответа.

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

В документах сказано, что:

По умолчанию учетные данные и региональные настройки остаются незастроенными. Это должно быть настроено приложением перед использованием любого API сервиса AWS.

Итак, я установил свой регион, но почему я все еще получаю ошибку?

1 2

1 ответ:

Вы задаете регион в локальной переменной config. Он должен быть установлен в глобальном AWS.config, например:

AWS.config.region = 'us-east-1';

То же самое относится и к учетным данным. Если вы хотите использовать учетные данные Amazon Cognito для всех своих клиентов AWS, вы должны инициализировать AWS.config.credentials следующим образом:

AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'YOUR_POOL_ID'
});

Надеюсь, это поможет!