У меня есть шлюз API в AWS, для которого включена авторизация IAM.Он отлично работает с почтальоном, но не работает с локальным кодом реакции.Вот мой код
var AWSSignature = require('react-native-aws-signature');
var query = this.query.current.value;
var body = {'id': Auth.user.username,
'message': query,
'timestamp': new Date()}
var awsSignature = new AWSSignature();
let credentials = {
SecretKey: '***',
AccessKeyId: '**'
};
var d = new Date().toISOString().split('.')[0]+"Z";
d=d.split('-').join('');
d=d.split(':').join('');;
console.log(d);
var options = {
path: '/v1/chatbot',
service: 'execute-api',
method: 'POST',
headers: {
'X-Amz-Date': d,
'host': '<api>.us-east-2.amazonaws.com'
},
region: 'us-east-2',
body: JSON.stringify(body),
credentials
};
awsSignature.setParams(options);
var signature = awsSignature.getSignature();
var authorization = awsSignature.getAuthorizationHeader();
console.log(authorization);
var headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': authorization
}
axios.post('<api>/v1/chatbot', JSON.stringify(body), {headers: headers})
.then((response) => {
console.log("success");
console.log(response);
})
.catch((error) => {
console.log(error);
})
По сути, я перехожу по этой ссылке: https://www.npmjs.com/package/react-native-aws-signature, но, похоже, она не работает. Я по-прежнему получаю токен аутентификации!Я также попытался добавить заголовок Allow cross-origin, но он тоже не работает