6

我正在开发我的 RoR4 应用程序,以使用户能够通过现有facebook帐户登录。我注册了一个 facebook 应用程序(一个经过测试的实时版本)并将它的 api 和 secret 存储在development.rb. 我使用了omniauth-facebook 并设计了gem,但遇到了“ Csrf detected”问题。

我的应用程序代码的灵感来自这篇博文:http: //sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/

我确实从 2 年前的 stackoverflow 帖子中看到了一个解决方案(Rails + omniauth + facebook - csrf detected) - 但最新的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
4

1 回答 1

3

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

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

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

也许它工作..

于 2015-11-13T10:23:12.110 回答