0

我正在使用 Twilio Voice API 拨打电话。流程是用户在我的网站上启动一个操作,然后我们通过 ruby​​ gem 中的 twilio 对象向 Twilio API 发送一个请求。该对象包含

“从”号码,“到”号码,“网址”

“url”是我的 API 端点,看起来像这样

.../api/v1/用户/这里

从这里,我将请求路由到我的控制器的一个操作,以提供一个 twiml 来播放。

我的问题是:如何确保只有 TWILIO 能够 ping 这个 api 端点?

a) Twilio 的请求中是否有某种标识符可用于验证源?

b) 我正在使用 Grape gem 来设置 api 端点。我可以为此目的对葡萄宝石做些什么吗?

4

2 回答 2

3

Twilio 布道者在这里。

Twilio 有一个我们发送的称为 X-Twilio-Signature 的特殊标头,它允许您验证 Webhook 请求是否仅来自 Twilio

Ruby 帮助程序库包含一个中间件,您可以插入该中间件来检查此标头并执行验证。查看此博客文章以获取更多信息:

https://www.twilio.com/blog/2014/09/securing-your-ruby-webhooks-with-rack-middleware.html

希望有帮助

于 2016-02-18T03:33:29.747 回答
0

一个简单的方法是使用 API 令牌。选择一个不错的随机字符串并设置您的 Twilio URL 以包含?token=abcd1234,然后在您的服务器上验证令牌是否存在。任何其他访问您的端点的人都不会拥有它,所以您知道它一定是 Twilio。

于 2016-02-18T03:26:47.357 回答