По умолчанию модуль 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.