【问题标题】:How to ensure only Twilio hits my api endpoint?如何确保只有 Twilio 访问我的 api 端点?
【发布时间】:2016-02-18 03:13:47
【问题描述】:

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

'from' number , 'to' number , 'url'

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

.../api/v1/users/这里

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby api twilio twilio-click-to-call


    【解决方案1】:

    Twilio 布道者在这里。

    我们发送的 Twilio 有一个特殊的标头,称为 X-Twilio-Signature,它允许您validate that the webhook request is only coming from Twilio

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

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

    希望有帮助

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-25
        • 2022-12-31
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-14
        • 2021-12-31
        相关资源
        最近更新 更多