Rails 4 + omniauth facebook - 检测到csrf

use*_*524 6 facebook devise omniauth ruby-on-rails-4 omniauth-facebook

我正在使用我的RoR4应用程序,以便用户通过现有facebook帐户登录.我注册了一个Facebook应用程序(一个实时和测试版本)并存储其api和秘密development.rb.我使用omniauth-facebook和设计宝石并遇到了" Csrf detected"问题.

我的应用程序代码受到以下博客文章的启发:http: //sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/

我确实看到了2年前发布的stackoverflow帖子的解决方案(Rails + omniauth + facebook - 检测到csrf) - 但最新的omniauth-facebook版本比发布的版本大得多.无论哪种方式,我试图回到omniauth-facebook gem到版本1.4.1,我仍然遇到了这个问题.

宝石

oauth2 (1.0.0)
omniauth (1.2.2)
omniauth-facebook (2.0.1)
omniauth-oauth2 (1.3.1)
Run Code Online (Sandbox Code Playgroud)

想法?

错误日志

(facebook) Callback phase initiated.
(facebook) Callback phase initiated.
(facebook) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
Run Code Online (Sandbox Code Playgroud)

Sib*_*ier 3

我对设备和omniauth-facebook 也有类似的问题,但这是我的错误。

之前我已经在两者device.rbomniauth.rb初始化程序中添加了facebook应用程序id和秘密(两者都是config/initializers文件夹中的初始化程序)。我删除了这些 facebook 配置omniauth.rb并重新启动了服务器,它起作用了。

请检查您的device.rb和其他与omniauth相关的初始值设定项。

也许它有效..