Railsアプリケーションでは、ユーザーが一度に複数のブラウザータブを数時間または数日間開いたままにしておくのが一般的です。この問題は、これらのタブの1つで、ユーザーがログアウトしてから再度ログインした場合に発生します(または、セッションが期限切れになり、新しいセッションが作成されます)。
これにより、他のすべてのタブのCSRF認証トークンが無効になります。更新せずにフォームを送信したり、これらのタブでajaxリクエストを実行しようとすると、エラーが発生します(実際、不正な認証トークンが渡された場合のデフォルトのRailsの動作であるため、ログアウトされます)。
この動作は明らかに望ましくありません。ユーザーがサイトに対してウィンドウを開いているが、信頼性トークンが古くなっている状況を適切に処理するために、人々は何をするのだろうかと思っていました。
私がやりたくないのは、ログインページにリダイレクトすることです。たとえば、長いブログ投稿などを書いていると、作業が失われる可能性があります。
頭に浮かぶ解決策は、サーバーをポーリングして信頼性トークンが変更されたかどうかを確認するか、ユーザーのCookieをポーリングしてセッションが変更されたかどうかを確認するJavaScriptを用意することです。誰かがこれらのいずれかをしているのを聞いたことがないので、コミュニティがどう思っているかを見たかったのです。