Получение токенов OAuth (на сервере) из модуля OAuth Фарадея (из клиента) - PullRequest
0 голосов
/ 21 января 2011

Я использую Фарадей для связи между двумя веб-приложениями, которые я разрабатываю ( background и связанный вопрос ). Я использую токены OAuth как часть формы загрузки / подключения клиентского приложения к серверу приложения.

Однако я не могу найти токены OAuth в заголовках или хешах action_dispatch и т. Д.

Есть предложения?

1 Ответ

1 голос
/ 02 февраля 2011

Я нашел ответ здесь: https://github.com/technoweenie/faraday/issues#issue/12

Hi there, I ran into the same problem and found that it was because I used the Faraday.default_adapter before my middleware (in a Faraday::Connection contructor block).

Maybe this can help as I see the issue is still open.

Going from:

@connection ||= Faraday::Connection.new(:url => "http://...") do |builder|
  builder.adapter Faraday.default_adapter
  builder.use CookieAuth
end
to

@connection ||= Faraday::Connection.new(:url => "http://...") do |builder|
  builder.use CookieAuth
  builder.adapter Faraday.default_adapter
end
solved the problem for me.

What happens is that when any http method of Connection is called (falling back to Faraday::Connection#run_request), the default_adapter actually performs the request (like in Faraday::Adapter::NetHttp#call:45) before the middleware and so the modified headers are not sent to the server.

Yet the test case passes because the middeware is called (after the request) and updates the request_headers in the env.

To sums things up, just be sure to configure any "request modifier" middleware before any adapter that actually performs the request.
...