Обеспечение Twitter Webhook - PullRequest
       11

Обеспечение Twitter Webhook

0 голосов
/ 14 ноября 2018

Как уже упоминалось в Twitter Docs Шаги для подтверждения запроса

  1. Создайте хеш, используя свой секретный ключ потребителя и тело входящей полезной нагрузки.
  2. Сравните созданный хеш со значением x-twitter-webhooks-signature в кодировке base64.

Вот мой код для этого:

const buffer = Buffer.from(JSON.stringify(ctx.request.body))
const expectedHash = crypto.createHmac('sha256', TWITTER_CONSUMER_SECRET).update(buffer).digest('base64')

Заголовок x-twitter-webhooks-signature из твиттера и сгенерированный хэш не совпадают. Кроме того, сообщение на https://twittercommunity.com/t/validating-the-webhook-signature-header-in-node-js/102525 говорит, что это JSON.stringify() проблема. Я использую koa и koa-body, как я могу исправить несоответствие хеша?

1 Ответ

0 голосов
/ 15 ноября 2018

Нашел решение.Используется koa-bodyparser вместо koa-body, тогда sha256 из ctx.request.rawBody совпадает с заголовком.

...