如何使用Twilio Node SDK验证Webhook请求?

时间:2019-10-15 04:46:39

标签: twilio twilio-api

我正在根据https://www.twilio.com/docs/usage/tutorials/how-to-secure-your-express-app-by-validating-incoming-twilio-requests此处的文档,尝试将Twilio Node SDK与我的Express应用程序配合使用,以验证对我的Webhook端点的请求实际上来自Twilio。

我在生产环境中设置了TWILIO_AUTH_TOKEN环境变量,并定义了Webhook端点,如下所示:

router.post(
  "/foo",
  twilio.webhook(),
  async (req, res) => {
    ...
  }

但是,当我将短信发送到触发Webhook的Twilio号码时,它返回403。通过在Twilio控制台中检查调试器,响应正文为Twilio Request Validation Failed

不太确定我在这里可能做错了什么,因为文档使其听起来相当简单。如果删除twilio.webhook()行,则一切正常。 webhook端点为https,并且我在Twilio帐户中启用了SSL证书验证。

2 个答案:

答案 0 :(得分:0)

最后,我只是按照Twilio安全指南中的步骤自己生成了哈希并将其与x-twilio-signature标头进行比较,从而使此方法能够起作用。我唯一的猜测是Twilio Node SDK有问题。

答案 1 :(得分:0)

只需输入您的电话号码,就不会期望通过http发出请求,而是从Twilio(当您的电话号码收到文本并且Twilio呼叫网络钩子时)