如Twitter Docs中所述 验证请求的步骤
这是我这样做的代码:
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,如何解决哈希不匹配的问题?
答案 0 :(得分:1)
找到了解决方案。用koa-bodyparser
代替koa-body
,然后sha256
中的ctx.request.rawBody
与标题匹配。