0

我正在使用Faraday在我正在开发的两个 Web 应用程序(背景相关问题)之间进行通信。我使用 OAuth 令牌作为从客户端应用程序到服务器应用程序的上传/连接的一部分。

但是,我似乎无法在标头或 action_dispatch 哈希等中找到 OAuth 令牌。

有什么建议么?

4

1 回答 1

1

我在这里找到了答案: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。

总结一下,只要确保在实际执行请求的任何适配器之前配置任何“请求修饰符”中间件。
于 2011-02-02T17:49:52.370 回答