Cookieの有効期限は400日に制限される件、今更ながら知ったので…改めてまとめてみた。
Chromeの公式はこちら。
Chrome for Developers
Chrome 119 の新機能 | Blog | Chrome for Developers
Chrome 119 がリリースされました。すでに保存されている Cookie の有効期限の上限が更新されます。CSS には、新しい疑似クラス、相対色構文、広告サイズマクロのようなフ…
Chrome 104 以降、新たに作成された Cookie または有効期限が設定された Cookie の有効期限は、その後 400 日以内に制限されています。この上限は、すでに保存されている Cookie にも遡及的に適用されます。
最新のChromeでは無期限にしていても、400日以内に制限される。
つまり今まで、Cookieを利用して長期間のセッション管理を必要とするサイトでは問題が発生する可能性がある。
解決策としては、400日以内にCookieを更新するか、セッションのライフサイクルをより積極的に管理することが必要となる。
ローカルストレージの活用:長期的なセッション管理には、ローカルストレージを利用し、ユーザーが再度訪問した際にデータを復元する。特に明示的に削除されない限り残り続ける。タブを閉じたり、ブラウザを閉じたタイミングで制御したい時はセッションストレージを活用しましょう。
トークンベース認証:短期間の有効期限を持つアクセストークンを使用し、リフレッシュトークンでセッションを更新する。DBに管理をしないといけない分、既存システムでの切り替えは困難。
セッション管理の改善:Cookieの有効期限が近づいたら、サーバーサイドで新しいCookieを発行して更新する。リクエストにCookieを付与して、バックエンドで管理し、set-cookieしてレスポンスを返すようにする。Cookieは400日で切れるので更新期限用のCookieを別に用意してあげるのが良い。