この他のSO投稿で説明されているものと同様のシステムを実装しました。基本的に、ユーザーが 14 分間何も操作しない場合、ログアウトするように促します。「ログイン状態を維持する」をクリックすると、セッションを維持するために ajax リクエストが実行されます。それ以外の場合は、1 分後にログアウト ページにリダイレクトされます。
これは非常にうまく機能し、mint.com や bankofamerica.com などのサイトで採用されている同様のシステムと一致しています。唯一の問題は、アプリケーションのユーザーが複数のタブを開いて、さまざまなデータを前後に参照する傾向があることです。したがって、問題は、1 つのタブでアクティブに作業している可能性がありますが、他のタブがタイムアウトしてログアウトすることです。これにより、ユーザーが予期していなかった突然のセッション タイムアウトが発生します。ところで、mint.com にも同じ問題があります。
それで、誰かがこれと戦うためのアイデアを持っているかどうか疑問に思っていましたか?
私には 1 つの考えがあります。各リクエストで「最終アクティブ時間」Cookie を設定できます。自動ログアウト時に、サーバーはこの最後のアクティブな時間を確認し、比較的最近の場合はログアウトを回避できます。手動ログアウトはもちろんこの Cookie を無視するため、ユーザーがログアウトしたい場合はいつでもログアウトできます。ただし、現時点では確認できない何らかのセキュリティ リスクが発生している可能性があるのではないかと心配しています。考え?