无法验证 webhook
unable to verify webhook
我有一个 webhook,可以将推送事件有效负载传送到 Google 云函数。我的 nodejs 代码如下所示:
function validateRequest (req) {
return Promise.resolve()
.then(() => {
const digest = crypto
.createHmac('sha1', '12345')
.update(JSON.stringify(req.body))
.digest('hex');
if (req.headers['x-hub-signature'] !== `sha1=${digest}`) {
const error = new Error('Unauthorized');
error.statusCode = 403;
throw error;
} else {
console.log('Request validated.');
}
});
}
我已经双重和三次检查了秘密令牌 (
代码中的 12345') 与 webhook 中的秘密匹配。然而,此代码计算的 sha 不等于 GitHub 发送的 sha。此代码是从 https://cloud.google.com/community/tutorials/github-auto-assign-reviewers-cloud-functions 中逐字提取的。 GitHub 使用的散列方法是否已更改?
问题是 webhook 需要发送内容类型 application/json
而不是 application/x-www-form-urlencoded
。
我有一个 webhook,可以将推送事件有效负载传送到 Google 云函数。我的 nodejs 代码如下所示:
function validateRequest (req) {
return Promise.resolve()
.then(() => {
const digest = crypto
.createHmac('sha1', '12345')
.update(JSON.stringify(req.body))
.digest('hex');
if (req.headers['x-hub-signature'] !== `sha1=${digest}`) {
const error = new Error('Unauthorized');
error.statusCode = 403;
throw error;
} else {
console.log('Request validated.');
}
});
}
我已经双重和三次检查了秘密令牌 ( 代码中的 12345') 与 webhook 中的秘密匹配。然而,此代码计算的 sha 不等于 GitHub 发送的 sha。此代码是从 https://cloud.google.com/community/tutorials/github-auto-assign-reviewers-cloud-functions 中逐字提取的。 GitHub 使用的散列方法是否已更改?
问题是 webhook 需要发送内容类型 application/json
而不是 application/x-www-form-urlencoded
。