AWS-усиление Включение заголовка авторизации cognito в запрос - PullRequest
0 голосов
/ 01 июня 2018

Я создал проект мобильного концентратора AWS, включающий логику Cognito и Cloud.В своем API-шлюзе я установил пул пользователей Cognito для авторизаторов.Я использую React native в качестве клиентского приложения.Как я могу добавить заголовок авторизации к моему запросу API.

const request = {
  body: {
    attr: value
  }
};

API.post(apiName, path, request)
  .then(response => {
  // Add your code here
    console.log(response);
  })
  .catch(error => {
    console.log(error);
  });
};

1 Ответ

0 голосов
/ 02 июня 2018

По умолчанию модуль API aws-amplify будет пытаться подписать запросы sig4.Это замечательно, если ваш тип авторизатора AWS_IAM.

Это, очевидно, , а не , что вы хотите при использовании Cognito User Pool Authorizer.В этом случае вам нужно передать id_token в заголовок Authorization вместо подписи sig4.

Сегодня вы действительно можете передать заголовок Authorization для усиления, и он не будетдольше перезаписывайте его сигнатурой sig4 .


В вашем случае вам просто нужно добавить объект headers к вашему request объекту.Например:

async function callApi() {

    // You may have saved off the JWT somewhere when the user logged in.
    // If not, get the token from aws-amplify:
    const user = await Auth.currentAuthenticatedUser();
    const token = user.signInUserSession.idToken.jwtToken;

    const request = {
        body: {
            attr: "value"
        },
        headers: {
            Authorization: token
        }
    };

    var response = await API.post(apiName, path, request)
        .catch(error => {
            console.log(error);
        });

    document.getElementById('output-container').innerHTML = JSON.stringify(response);
}

Протестировано с использованием aws-amplify 0.4.1.

...