【问题标题】:Rails 4 + omniauth facebook - csrf detectedRails 4 + omniauth facebook - 检测到 csrf
【发布时间】:2015-07-29 04:34:22
【问题描述】:

我正在开发我的 RoR4 应用程序,以使用户能够通过现有的 facebook 帐户登录。我注册了一个 facebook 应用程序(一个经过测试的实时版本)并将它的 api 和 secret 存储在 development.rb 中。我使用了omniauth-facebook并设计了gems,遇到了“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

【问题讨论】:

    标签: facebook ruby-on-rails-4 devise omniauth omniauth-facebook


    【解决方案1】:

    我在 device 和 omniauth-facebook 上也有类似的问题,但这是我的错误。

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

    请检查您的device.rb 和其他与omniauth 相关的初始化程序。

    可能会成功..

    【讨论】:

    • 你的意思是devise.rb
    • 我遇到了同样的问题。我已经将我的应用程序 ID 和密码放入了设计初始化程序和omniauth 初始化程序中。删除 devise.rb 中的重复凭据修复了该问题。
    猜你喜欢
    • 1970-01-01
    • 2014-04-18
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 2015-09-11
    相关资源
    最近更新 更多