私が間違っている場合は修正してください。ただし、Chrome (および FF もそう思う) が正確な Cookie を保存し、すべての LoginHandler メソッドをスキップしてセッションを復元できるため、私がしようとしていることを最終的に行う方法はないと思います。
説明させてください。
そうです、私はあなたの回答とコメントで説明されているソリューションを実装しようとしていました (そして実際に実装しました):
- ユーザー X は、Safari を使用してログイン/パスワードを使用して Web サイトにアクセスします (たとえば)。
- ログイン日時は
User
、データベースのテーブルとセッションの両方に保存されます
- ログアウトせずに、同じユーザー X が別のブラウザー (Chrome など) を開きます。
- 新しいログイン日時がデータベースと Firefox セッションで更新されます
- ユーザーは Safari に戻り、ページを更新しようとします。
- 日時がセッションに保存されているものと一致しないため、彼は例外を受け取ります
まあ...問題を解決しているように見えるので、これまでのところ素晴らしいです。
こことここで説明されているように、Chrome はセッション Cookie を適切に削除していません。そのため、ユーザーがログアウトせずにブラウザを閉じるだけで、Chrome に戻るたびに、ログイン ハンドラ、ログイン メソッドなどを経由せずにセッションが自動的に復元されます。
これにより、その「魔法の」日時キーがデータベースとセッションの両方に保存されなくなり、その結果、元の計画であったセッションを一度に 1 つだけにするという車輪にスティックが置かれます。
問題に関するこれ以上の光??
私は泣きたい :(