保护webhook免受未经授权的请求?

时间:2015-06-24 19:28:33

标签: javascript python node.js web webhooks

我想创建一个webhook,以便更改我的集合中文档的状态。这将触发其他事件。

Router.route('/mandrill/invitation_sent', { where: 'server' })
  .post(function () {
    var response = EJSON.parse(this.request.body.mandrill_events);
    Players.update({
      "email": {
        "$in": _.map(_.where(response, {
          event: 'send'
        }), function (obj) {
          return obj.msg.email;
        })
      }
    }, {
      "feed": {
        "$push": {
          title: "Player invited",
          icon: "ios-player-invited"
        }
      }
    })
  });
});

但是......我不能直接手动发布到此网络连接吗?

>>> import requests
>>> webhook_url = '<url>.com/mandrill/invitation_sent'
>>> payload = { 'mandrill_events': [{ 'event': 'send', 'msg': { 'email': 'foo@bar.com'}}]}
>>> requests.post(webhook_url, data=payload)
<Response [200]>

我如何知道请求来自受信任的来源?是否有一些规范的方法可以确保webhook从受信任的来源接收数据?

1 个答案:

答案 0 :(得分:0)

Mandrill webhooks会对发送给您的请求进行身份验证。 查看their documentation