0

我最近一直面临这个问题。我在浏览器中收到此错误。

在此处输入图像描述

在我的 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
4

1 回答 1

1

我找到了解决方案。Warden_OmniAuth gem 似乎有错误。当到达回调点时它会变得混乱并导致调用回调的重复循环。

所以我改用 Warden gem、OmniAuth gem 和 OmniAuth-facebook gem。通过使用建设者和监狱长策略。

于 2015-04-17T02:48:16.150 回答