消息签名是使用您在 webhook 页面上可查看的 webhook 秘密签名(使用 MD5)的消息正文 HMAC 的十六进制摘要。您可以使用它来验证我们是消息的发件人。
这就是我尝试验证Express
服务器中消息的方式:
import express from 'express';
import CryptoJS from 'crypto-js';
const router = express();
router.post('/webhook', function (req, res) {
const secret = 'Secret from https://www.patreon.com/portal/registration/register-webhooks';
console.log(CryptoJS.HmacMD5(req.body, secret).toString(CryptoJS.enc.Hex))
console.log(CryptoJS.HmacMD5(JSON.stringify(req.body), secret).toString(CryptoJS.enc.Hex))
const wordArray = CryptoJS.enc.Utf8.parse(req.body)
const hexString = CryptoJS.enc.Hex.stringify(wordArray);
console.log(CryptoJS.HmacMD5(hexString, secret).toString(CryptoJS.enc.Hex))
res.send();
});
X-Patreon-Signature
但是与我从标题中获得的值相比,我记录的所有这些结果都不相同。