AWS отсутствует ошибка аутентификации, отлично работает в почтальоне, но не в реакции - PullRequest
0 голосов
/ 17 марта 2019

У меня есть шлюз 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, но он тоже не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...