使用Firefox和Devise获取CSRF错误

时间:2014-03-15 22:15:53

标签: ruby-on-rails ruby firefox devise csrf

出于某种原因,我的应用程序无法登录firefox。虽然所有标记都存在并成功提交,但它会抛出CSRF错误。登录也适用于任何其他浏览器。

我找到了一个引用改变的答案:

Learn::Application.config.session_store :cookie_store, key: '_learn_session', domain: :all

Learn::Application.config.session_store :cookie_store, key: '_learn_session'

config/initializers/session_store.rb

中的

我已尝试过两者(最初没有domain: :all),但似乎都没有效果。

This question引用了我的问题,但答案对我的情况没有帮助。

为了使情况更加复杂,我在没有启用CSRF的情况下进行了测试,该应用程序只是在没有失败通知的情况下阻止登录。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

你有没有检查过你的cookie?

我今天早些时候遇到了同样的问题,结果证明我的cookie配置存在问题。由于您的应用程序在没有启用CSRF的情况下仍无法运行,我认为您的login_controller或session_store都有错误。小心阅读session_store.rbyour_environment.rb,也许你可以找到错误。

答案 1 :(得分:0)

哇。我设法再次这样做了(请参阅Tim的回答评论),所以我真的把这个答案写给了我未来的自我。具体来说,Firefox已经阻止了来自localhost的cookie。

如果我取消阻止cookie,一段时间后Firefox会自动阻止它们,要求它们被解除阻止。我还不清楚为什么会发生这种情况,但至少可以解决这个问题(Chrome)。