2015-04-04 23 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域。