2015-04-04 22 views
1

我在运行Heroku最新版Devise的Rails 4.2应用程序时遇到问题。我将在前言中说明我在相当一段时间内没有将任何代码更改推向生产,并且这个问题最近才刚刚开始。Heroku/Rails/Devise:你想要的改变被拒绝

当我登录时,我收到一条错误消息,说“您要更改的内容已被拒绝。”当我查看日志时,我可以看到这是CSRF令牌的问题。

2015-04-04T19:52:22.430533+00:00 app[web.1]: Started POST "https://stackoverflow.com/users/sign_in" for 76.119.72.58 at 2015-04-04 19:52:22 +0000 
2015-04-04T19:52:22.435480+00:00 app[web.1]: Completed 422 Unprocessable Entity in 1ms 
2015-04-04T19:52:22.434143+00:00 app[web.1]: Processing by Devise::SessionsController#create as HTML 
2015-04-04T19:52:22.434211+00:00 app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"94uXDeV2wbb1XMfUL445zrIrbhS92pwe+9tWxkyvwtJhnZtZS3ydYOeP2grZvT/t2YMa2A2k/pA+U5X3gFXlAw==", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"} 
2015-04-04T19:52:22.435112+00:00 app[web.1]: Can't verify CSRF token authenticity 
2015-04-04T19:52:22.438522+00:00 app[web.1]: 

我一直在淘洗StackOverflow的答案,并尝试了所有我能想到的。我已经尝试了一些不同的事情至今:

  1. 我加入这一行我session_store.rb认为这可能与开发和生产环境之间的混合饼干的问题。 Rails.application.config.session_store:cookie_store,键: “_abhnation_session _#{} Rails.env”

  2. 我没有在rails-api宝石,这some讨论建议可能是罪魁祸首。

我也注意到问题严格与Firefox并且不是环境特定的。它发生在开发,测试和生产中。我只能通过测试会话来测试它。

我无法弄清楚是什么导致了这种情况发生。几个月后,我没有对我的面向公众的生产环境进行任何更改。

下面是代码链接:http://github.com/danielbonnell/abhnation-rails 这里是现场直播:http://abhnation.herokuapp.com/

回答

5

原来的问题(至少对我来说)是由Blur/DoNotTrackPlus Firefox扩展造成的。我以前曾经禁用过它,但没有任何效果。但是,当我将它移开时,问题就消失了。

希望这可以帮助未来的人。

1

更新设置以允许在iOS Safari浏览器中使用Cookie。

我在我的iOS iPhone Safari上有同样的消息,但是一旦我允许IOS Safari浏览器的cookies,它就解决了这个问题。

1

您也可以检查您的cookie域 - 确保它设置为正确的* .herokuapp.com域。