我正在使用我的RoR4应用,以便用户通过现有的facebook
帐户登录。我注册了一个Facebook应用程序(一个实时和测试版本)并将其api和秘密存储在development.rb
中。我使用了omniauth-facebook并设计了宝石并遇到了“Csrf detected
”问题。
我的应用程序代码的灵感来自于这篇博文: http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/
我确实看到了2年前(Rails + omniauth + facebook - csrf detected)发布的stackoverflow帖子的解决方案 - 但最新的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)
想法?
错误记录
(facebook) Callback phase initiated.
(facebook) Callback phase initiated.
(facebook) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
答案 0 :(得分:3)
我在设备和omniauth-facebook上有类似的问题,但这是我的错误。
之前我在device.rb
和omniauth.rb
初始化程序中都添加了facebook app id和secret(两者都是config/initializers
文件夹中的初始化程序)。我从omniauth.rb
删除了这些Facebook配置并重新启动了服务器,它可以工作。
请检查您的device.rb
和其他与omniauth相关的初始值设定项。
可能有用..