app.use(
express.json({
// We need the raw body to verify webhook signatures.
verify: function (req, res, buf) {
if (req.originalUrl.includes('webhook')) {
req.rawBody = buf.toString();
}
},
})
);
const hash = crypto.createHmac('sha256', secret).update(req.rawBody, 'utf8').digest('base64')`;
1条答案
按热度按时间aiazj4mn1#
这个问题是来自http请求的字符串,我将其重新转换为字符串,导致json项交换位置,仅在某些情况下与hmac机密匹配。
我通过转换原始主体来验证webhook签名,然后直接在Hmac中使用req.rawBody作为有效负载,而不进行任何重整。