github에서 들어오는 Webhook을 처리 중이며 x-hub-signature를 확인하려고합니다. 나는 hmac
을 사용하여 "비밀"을 해시 한 다음 두 해시를 비교합니다. 문제는 그들이 절대로 일치하지 않는다는 것입니다. 이것은 내 설정입니다.HMAC 서명이 github의 x-hub-signature와 일치하지 않습니다.
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)
이외의 매개 변수가 있어야하는지 궁금합니다. 아무도 왜 그들이 일치하지 않을지 알고 있습니까?