Получение токенов OAuth (на сервере) из модуля OAuth Фарадея (из клиента)
Я использую Фарадей, чтобы общаться между двумя веб-приложениями, которые я разрабатываю ( фон и связанный вопрос). Я использую токены OAuth как часть формы загрузки / подключения клиентского приложения к серверу приложения.
Однако я не могу найти токены OAuth в заголовках или хешах action_dispatch и т. Д.
Какие-либо предложения?
1 ответ
Решение
Я нашел ответ здесь: https://github.com/technoweenie/faraday/issues
Привет, я столкнулся с той же проблемой и обнаружил, что это потому, что я использовал Faraday.default_adapter до своего промежуточного программного обеспечения (в блоке Faraday::Connection contructor). Может быть, это может помочь, поскольку я вижу, что проблема все еще открыта. Исходя из: @connection ||= Faraday::Connection.new(:url => "http://...") do |builder| builder.adapter Faraday.default_adapter builder.use CookieAuth завершается @connection || = Faraday:: Connection.new (: url => "http: //...") do | builder | buildder.use CookieAuth builder.adapter Конец Faraday.default_adapter решил проблему для меня. Что происходит, когда при вызове любого http-метода Connection (возвращающегося к Faraday::Connection#run_request), default_adapter фактически выполняет запрос (как в Faraday::Adapter::NetHttp#call:45) перед промежуточным ПО и т. Д. измененные заголовки не отправляются на сервер. Тем не менее, контрольный пример проходит, потому что промежуточное ПО вызывается (после запроса) и обновляет request_headers в env. Подводя итог, просто настройте любое промежуточное программное обеспечение "модификатор запроса" перед тем, как адаптер фактически выполнит запрос.