невозможно проверить webhook - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть веб-крючок, который доставляет полезные данные события Push в облачную функцию 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.Этот код был взят дословно из https://cloud.google.com/community/tutorials/github-auto-assign-reviewers-cloud-functions. Изменился ли метод хэширования, используемый GitHub?

1 Ответ

0 голосов
/ 29 сентября 2018

Проблема заключалась в том, что webhook необходимо отправлять контент типа application/json, а не application/x-www-form-urlencoded.

...