Rails 3.2 + Facebook auth + CSRF FAILURE

时间:2012-07-18 19:04:59

标签: ruby-on-rails heroku facebook-oauth

这是我在尝试通过Facebook登录时看到的错误,我总是看到错误。似乎无法摆脱它:

  

无法通过Facebook授权您,因为“已检测到Csrf”。

我放了一个跳过:

skip_before_filter :verify_authenticity_token
关于Omniauth回调,但我仍然得到错误。这是在本地和prod(heroku)环境中。我已经设置了heroku环境变量。有什么想法吗?

3 个答案:

答案 0 :(得分:7)

我在同一天遇到了同样的问题!! 我认为这是一个宝石更新或类似的东西,但根本没有。 通过深度调试,我发现omniauth“回调阶段已启动”。被叫了两次。

这是由于

的愚蠢的双重初始化
  

提供者:facebook,.....

在config / initializers / devise.rb和另一个初始化程序中。

我希望它会给你一个提示来找到你的错误

答案 1 :(得分:6)

我发现问题是宝石太新了并且将STATE标题传递给了facebook,这是fb不想要的。我推回了omniauth-facebook宝石版本,它起作用了

答案 2 :(得分:0)

您是否正在发送p3p标头,可能会添加...

before_filter :set_p3p
private

def set_p3p
  headers['P3P'] = 'CP="ALL DSP COR CURa ADMa DEVa OUR IND COM NAV"'
end

到您的应用程序控制器