保护Twitter Webhook

问题描述 投票:1回答:1

正如Twitter Docs中提到的验证请求的步骤

  1. 使用您的使用者密钥和传入的有效负载主体创建哈希。
  2. 将创建的哈希值与base64编码的x-twitter-webhooks-signature值进行比较。

这是我的代码:

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

来自twitter的x-twitter-webhooks-signature标头和生成的哈希值不匹配。此外,https://twittercommunity.com/t/validating-the-webhook-signature-header-in-node-js/102525的帖子说它是JSON.stringify()问题。我正在使用koa和koa-body,如何修复哈希不匹配?

node.js twitter webhooks koa
1个回答
1
投票

找到了解决方案。使用koa-bodyparser而不是koa-body然后sha256ctx.request.rawBody与标题匹配。

© www.soinside.com 2019 - 2024. All rights reserved.