2011-07-20 7 views
0

私は春のセキュリティ、アプリケーションではJavaを使用しています。セッションが終了すると、セッションが終了したという警告を表示する必要があります。ボックスにはOKボタンがあります。このボタンをクリックするとログインページにリダイレクトします。タイムアウト後に最大タイムアウトを表示し、アラートメッセージを表示する必要があります。セッションタイムアウトタイマーは、新しいページがロードされるとリセットされていると仮定するとアラートボックスでセッションタイムアウトを作成する方法

答えて

3

、あなたは、単にJavaScriptのタイムアウトを使用することができます:あなたは別のページに移動するとすぐに

setTimeout(function() { 
    if(confirm('session timeout')) 
     location.href = 'login.html'; 
}, 15 * 60 * 1000); // 15 minutes, alter appropriately 

を、現在のすべてのJavaScriptはそう、破棄されますタイムアウトがリセットされます。

+1

この間にいくつかのAjaxリクエストを作成したらどうなりますか?別のタブ(同じブラウザ)を開き、そのタブでアプリケーションを使用すると、さらに悪化します。この場合、他のタブからサーバーにpingしても、以前のタブからログアウトされます。 – anu

+1

@anu:完全に正しい - これは非常に簡単な例でした。代わりに、 'localStorage'に現在の時刻を格納することで、各onload/ajaxリクエスト/ etcでリセットすることができ、' localStorage'エントリが変更されるとすぐにすべてのページがタイムアウトにリセットされます。おそらく、汚いですが、クロスページで作業する必要があります。 – pimvdb

+0

yes.Actuallyこのような種類のものを使用していますが、login.htmlにページを転送するのではなく、現在のページを更新していますので、サーバー側でセッションが無効な場合は自動的にログアウトされます。 – anu

0

ajax対応のWebサイトの場合は、すべてのajax-requestに対してauth/sessionを確認し、リクエストにステータスコードなどを返し、クライアント側でチェックします。ステータスコード401の場合、アラートを表示します。

私はアイドル時間の後にそれを引き起こすためのタイマーを持っている必要はありません、正直言ってください。

関連する問題