0

Push イベント ペイロードを Google Cloud Function に配信する Webhook があります。私の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 内のシークレットと一致することを 2 回および 3 回チェックしました。しかし、このコードによって計算された sha は、GitHub によって送信された sha と等しくありません。このコードは、https: //cloud.google.com/community/tutorials/github-auto-assign-reviewers-cloud-functions からそのまま引用したものです。GitHub が使用するハッシュ方法は変更されましたか?

4

1 に答える 1