CORS:如何保护Facebook Leadgen Webhook?

时间:2018-08-24 13:17:16

标签: facebook express facebook-graph-api cors webhooks

我已经构建了一个Express.js应用程序,该应用程序充当Facebook潜在客户数据的网络挂钩,并订阅了Leadgen事件。

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

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

我该如何实现?

1 个答案:

答案 0 :(得分:1)

[CORS是客户端,webhooks是服务器到服务器的-因此不适用于此处。]

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

  

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