【问题标题】:Nodejs - superagent-http-signature - signature not sentNodejs - superagent-http-signature - 未发送签名
【发布时间】:2016-03-01 07:06:30
【问题描述】:

我正在使用this site

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);
    });

节点版本:v4.2.1

如果我检查服务器上的签名标头(顺便运行 PHP,使用自己的签名验证器,使用相同的规范),则缺少签名标头。

我缺少什么吗?或者是否有任何具有相同功能的替代节点包?

我这样做的目的是能够使用 PHP 之外的其他语言调用 API 作为概念证明,以便我以后可以将其用于 AWS Lambda 计划任务。

【问题讨论】:

    标签: node.js http-signature


    【解决方案1】:

    您的代码有效,并且错误在您的服务器端。也许 PHP 和代码(Apache?nginx?)之间的某些东西正在过滤标头。

    GET /api/v3/project/tasks/get?task_id=1026 HTTP/1.1
    Host: project.dev
    Accept-Encoding: gzip, deflate
    User-Agent: node-superagent/1.8.0-beta.2
    Accept: application/json
    x-app-key: MY_ACCESS_KEY
    x-app-trusted: key=None
    Authorization: Signature keyId="MY_SECRET_KEY",algorithm="hmac-sha256",headers="(request-target) Accept x-app-key x-app-trusted",signature="9ietyIsW8nPH6BqwiePqsDefQpGUFERoV7wEaQ9UUGQ="
    Connection: close
    

    【讨论】:

    • 我明白了。我将检查服务器配置。您如何查看标头?抱歉,node 流利使用 nodejs。
    • 我只是把netcat作为服务器,来获取客户端的请求。 nc -l <port>,然后用http://<server>:<port>/api/v3/project/tasks/get?task_id=1026连接到那个,但是有很多方法可以做到。
    • 刚刚测试过,确实存在 Authorization 标头。标头可能在我的 Docker 容器内的 nginx(代理)或 Apache 中被剥离。但是,keyId="SECRET_KEY" 部分似乎是错误的,它应该是访问密钥。无论如何,这个包似乎与我的 API 服务器不兼容。我可能只是编写自己的实现或找到另一个包。谢谢!标记为答案。
    猜你喜欢
    • 2013-01-03
    • 2014-06-23
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 2017-08-02
    • 2018-02-20
    相关资源
    最近更新 更多