CORS:如何保护Facebook Leadgen Webhook?



我构建了一个Express.js应用程序,该应用程序可以作为Facebook潜在客户数据的Webhook,并订阅了潜在客户事件。

我的问题 如何保护这个网络钩子,以便它只能由 Facebook 直接访问,而不能由任何其他来源访问。

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

我怎样才能做到这一点?

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

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

我们使用 SHA1 签名对所有事件通知有效负载进行签名,并将签名包含在请求的X-Hub-Signature标头中,前面是sha1=。您不必验证有效负载,但您应该这样做。

最新更新