CSRF обнаружен с использованием OmniAuth-facebook, warden_ominiauth, запуска warden в cygwin

Недавно я столкнулся с этой проблемой. Я получаю эту ошибку в своем браузере.

введите здесь описание изображения

В моем cygwin он продолжает перенаправлять меня и в конечном итоге показывает

ERROR -- omniauth: (facebook) Authentication failure! csrf_detected:                       
OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
E, [2015-04-16T11:21:15.660929 #10056] ERROR -- omniauth: (facebook) 
Authentication failure! invalid_credentials:  
OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detecte

Я пробовал различные предложенные методы, но не смог решить свою проблему.

После некоторого тестирования я решил, что это проблема с конфигурацией, но до сих пор не знаю, как ее исправить. Похоже, WardenOmniAuth не смог получить обратный вызов от facebook, который продолжает зацикливаться и перенаправляться, пока временной спам не уничтожит его.

Вот моя кодировка в моем app.rb

failure = lambda{|e| Rack::Resposne.new("Can't login", 401).finish }

use Rack::Session::Cookie

use Warden::Manager do |config|
  config.failure_app = failure
  config.default_strategies :omni_facebook
end

use OmniAuth::Strategies::Facebook, ENV["APP_ID"], ENV["APP_SECRET"]

use WardenOmniAuth do |config|
  config.redirect_after_callback = "/home"
end

person Dennis    schedule 16.04.2015    source источник


Ответы (1)


Я нашел решение. Похоже, гем Warden_OmniAuth имеет ошибку. Он выходит из строя, когда достигает точки обратного вызова и вызывает повторяющийся цикл вызова обратного вызова.

Поэтому я перехожу на использование драгоценных камней Warden, драгоценных камней OmniAuth и драгоценных камней OmniAuth-facebook. Используя стратегию строителя и надзирателя.

person Dennis    schedule 17.04.2015