coding / coding/Webhook.v2.Demo

使用Egg.js始终无法校验成功

オープン
#1 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
4
フォーク
3
PR マージ指標
30日以内にマージされた PR はありません

説明

```
verifyWebhook() {
const { ctx } = this;
if (!ctx.request.headers['user-agent'].includes('Coding.net Hook')) {
return false;
}
const theirSignature = ctx.request.headers['x-coding-signature'];
const payload = JSON.stringify(ctx.request.body);
const secret = '123';
const ourSignature = `sha1=${crypto.createHmac('sha1', secret).update(payload).digest('hex')}`;
return crypto.timingSafeEqual(Buffer.from(theirSignature), Buffer.from(ourSignature));
// 始终返回false,怎么回事??
}
}
```

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

verifyWebhook() のエントリーポイントから開始し、受信したリクエストボディから計算した HMAC と x-coding-signature を比較します。Coding.net webhook における payload の表現と署名の入力を確認します。正常な webhook が検証に通過し、不正な署名では引き続き false が返されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript
領域
api
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。