Я использую this siteNodejs - SuperAgent-клиента-подпись - подпись не послал
var superagent = require('superagent');
var superagentHttpSignature = require('superagent-http-signature');
superagent
.get('http://project.dev/api/v3/project/tasks/get?task_id=1026')
.set('Accept', 'application/json')
.set('x-app-key', 'MY_ACCESS_KEY')
.set('x-app-trusted', 'key=None')
.use(superagentHttpSignature({
headers: ['(request-target)', 'Accept', 'x-app-key', 'x-app-trusted'],
algorithm: 'hmac-sha256',
key: 'MY_ACCESS_KEY',
keyId: 'MY_SECRET_KEY'
}))
.end(function(err, res) {
// console.log(err);
console.log(res.body);
});
версия
Node: v4.2.1
Если я проверить заголовок подписи на сервере (под управлением PHP, кстати, с его собственным верификатором подписи, используя те же спецификации) заголовок подписи отсутствует.
Все, что у меня отсутствует? Или есть альтернативные пакеты узлов с одинаковой функцией?
Моя цель состоит в том, чтобы иметь возможность вызывать API с использованием другого языка, кроме PHP, в качестве доказательства концепции, чтобы впоследствии использовать его в запланированной задаче AWS Lambda.
Я вижу. Я проверю конфигурацию сервера. Как вы просматриваете заголовки? Извините, узел свободно с nodejs. – Lysender
Я просто положил netcat в качестве сервера, чтобы получить запрос от клиента. 'nc -l', а затем подключиться к нему с помощью http: // : /api/v3/project/tasks/get? task_id = 1026', но есть много способов сделать это. –
bolav
Просто протестирован и действительно имеется заголовок авторизации. Заголовок, вероятно, удаляется в nginx (прокси) или в Apache внутри моего контейнера Docker. Однако, 'keyId =" SECRET_KEY "' часть кажется неправильной, это должен быть ключ доступа. В любом случае, похоже, что этот пакет несовместим с моим сервером API. Я, вероятно, просто напишу свою собственную реализацию или найду другой пакет. Благодаря! Маркировка как ответ. – Lysender