gpt4 book ai didi

javascript - HMAC 签名与 github 中的 x-hub-signature 不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:54 25 4
gpt4 key购买 nike

我正在处理来自 github 的传入 Webhook,并且想要验证 x-hub-signature。我使用 hmac 对“ secret ”进行哈希处理,然后比较两个哈希值。问题是它们永远不匹配。这是我的设置:

router.route("/auth")

.post((req, res) => {

var hmac = crypto.createHmac("sha1", process.env.WEBHOOK_SECRET);
var calculatedSignature = "sha1=" + hmac.update(JSON.stringify(req.body)).digest("hex");
console.log(req.headers["x-hub-signature"] === calculatedSignature); // Returns false
console.log(req.headers["x-hub-signature"]) // => sha1=blablabla
console.log(calculatedSignature) // => sha1=foofoofoo

res.end();
});

我已经尝试了一切,但无法使其发挥作用。想知道 hmac.update() 是否应该保存 JSON.stringify(req.body) 之外的另一个参数。有谁知道为什么他们不匹配?

最佳答案

所以问题出在 webhook 的设置上。内容格式设置为 application/x-www-form-urlencoded,由于某种原因,它对 x-hub-signature 进行了不同的哈希处理。我只是将其更改为 application/json,然后就成功了!

关于javascript - HMAC 签名与 github 中的 x-hub-signature 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com