我正在根据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证书验证。
答案 0 :(得分:0)
最后,我只是按照Twilio安全指南中的步骤自己生成了哈希并将其与x-twilio-signature
标头进行比较,从而使此方法能够起作用。我唯一的猜测是Twilio Node SDK有问题。
答案 1 :(得分:0)
只需输入您的电话号码,就不会期望通过http发出请求,而是从Twilio(当您的电话号码收到文本并且Twilio呼叫网络钩子时)