这是我在尝试通过Facebook登录时看到的错误,我总是看到错误。似乎无法摆脱它:
无法通过Facebook授权您,因为“已检测到Csrf”。
我放了一个跳过:
skip_before_filter :verify_authenticity_token
关于Omniauth回调,但我仍然得到错误。这是在本地和prod(heroku)环境中。我已经设置了heroku环境变量。有什么想法吗?
答案 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
到您的应用程序控制器