【发布时间】:2011-01-21 03:48:37
【问题描述】:
我使用Faraday 在我正在开发的两个网络应用程序(background 和related question)之间进行通信。我使用 OAuth 令牌作为从客户端应用程序到服务器应用程序的上传/连接的一部分。
但是,我似乎无法在标头或 action_dispatch 哈希等中找到 OAuth 令牌。
有什么建议吗?
【问题讨论】:
标签: ruby-on-rails ruby oauth faraday-oauth
我使用Faraday 在我正在开发的两个网络应用程序(background 和related question)之间进行通信。我使用 OAuth 令牌作为从客户端应用程序到服务器应用程序的上传/连接的一部分。
但是,我似乎无法在标头或 action_dispatch 哈希等中找到 OAuth 令牌。
有什么建议吗?
【问题讨论】:
标签: ruby-on-rails ruby oauth faraday-oauth
我在这里找到了答案:https://github.com/technoweenie/faraday/issues#issue/12
您好,我遇到了同样的问题,发现这是因为我在中间件之前使用了 Faraday.default_adapter(在 Faraday::Connection 构造函数块中)。 也许这会有所帮助,因为我看到问题仍然存在。 来自: @connection ||= Faraday::Connection.new(:url => "http://...") 做 |builder| builder.adapter Faraday.default_adapter builder.use CookieAuth 结尾 到 @connection ||= Faraday::Connection.new(:url => "http://...") 做 |builder| builder.use CookieAuth builder.adapter Faraday.default_adapter 结尾 为我解决了这个问题。 发生的情况是,当调用 Connection 的任何 http 方法(回退到 Faraday::Connection#run_request)时,default_adapter 实际上会在中间件之前执行请求(如在 Faraday::Adapter::NetHttp#call:45 中)等等修改后的标头不会发送到服务器。 然而测试用例通过了,因为中间件被调用(在请求之后)并更新了环境中的 request_headers。 总而言之,只要确保在实际执行请求的任何适配器之前配置任何“请求修饰符”中间件。【讨论】:
CookieAuth 只是一个自写的中间件。如果您使用任何现有的中间件(例如Faraday::Response::Middleware)对任何类进行子类化,则可以将任何类设为中间件。