5

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

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

我放了一个跳过:

skip_before_filter :verify_authenticity_token

在 Omniauth 回调上,但我仍然收到错误消息。这在本地和 prod (heroku) 环境中都是如此。我已经设置了heroku环境变量。任何的想法?

4

3 回答 3

8

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

这是由于愚蠢的双重初始化

提供者:脸书,......

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

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

于 2012-07-20T12:56:07.007 回答
6

我发现问题在于 gem 太新并且将 STATE 标头传递给 facebook,这是 fb 不想要的。我回滚了omniauth-facebook gem版本,它工作了

于 2012-07-21T02:38:17.090 回答
0

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

before_filter :set_p3p
private

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

到您的应用程序控制器

于 2012-07-18T19:49:33.123 回答