CORS:如何保护 Facebook Leadgen Webhook?

CORS: How to secure a Facebook Leadgen Webhook?

我已经构建了一个 Express.js 应用程序,它作为 Facebook lead-data 的 webhook 并且订阅了 leadgen 事件。

我的问题 我如何保护此 webhook,使其只能由 Facebook 直接访问,而不能由任何其他来源访问。

我已经用 cors-module 尝试过,但是任何设置白名单来源 ('http://facebook.com', 'https://facebook.com') 的尝试都失败了。 我怀疑 Facebook 没有将此 URL 包含在 Headers 中,而是使用了非常动态的来源。

我怎样才能做到这一点?

[CORS 是客户端的东西,webhook 是服务器到服务器的——所以一开始就不适用这里。]

您只想验证 Facebook 随任何通知播放负载发送的 SHA-1 签名 - https://developers.facebook.com/docs/graph-api/webhooks/getting-started#validate-payloads:

We sign all Event Notification payloads with a SHA1 signature and include the signature in the request's X-Hub-Signature header, preceded with sha1=. You don't have to validate the payload, but you should.