Rails
Safari
csrf
cache-Control

Mobile safariで意図しないCSRFトークンエラーがでる

再現環境

Rails5
Mobile safari

再現動作

  1. ログイン中にホームボタンを押してホームに戻って一度safariのアプリを落とす。
  2. safariを再度起動して、CSRFトークンの検証をする何かしらのフォームからデータ送信。

対応策

application.rb
config.action_dispatch.default_headers.merge!('Cache-Control' => 'no-store, no-cache')

ブラウザのキャッシュを拒否するように設定する。
もう少し良い対応策があればいいんですが。。。

参考

https://github.com/rails/rails/issues/21948