2012-04-10 5 views
3

現在、私は自分のアカウントにログインしています。いくつかのページを進めた後、私は自分のアカウントからログアウトします。今私がを使用してページを戻す場合、ブラウザのボタンを押しても、まだ私はログイン状態です。このステータスをログアウトとして設定する必要はありますか?アプリケーション内で後退するときにログインのステータスを更新する方法はありますか

答えて

5

ブラウザで問題が発生するのは、戻るボタンを使用しても、サーバーからデータを取得したときにページを更新したり、ブラウザに読み込みJavaScript関数を強制的に実行させたりしないという点です。

あなたができることは、AJAXを使用して10秒ごとにログインしているかどうかをチェックするタイムアウト時にJavaScript関数を設定することです。

ユーザーがページをリフレッシュしたりリンクをクリックしたときにログアウトされてログに記録されないように、追加のサーバー負荷を追加しても気になりませんアクションで。

+0

+1私よりも良いアプローチです。しかし、なぜ気にしないでしょうか?秘密情報の暴露も防止する必要があります。 – tusar

+0

私は、ログインステータスを秘密情報として表示するクラスはありません。新しいセキュリティ保護されたデータは、サーバーから取得できません。 no-cacheを使用すると、ログインステータスがすべてのページに集まるので、サイト全体が遅くなります。ログインステータスが表示されているよりも大きな問題です(私は推測します)。 – Fantasmagorical

+0

同意した友達...ありがとうございました。そして、これはあなたの最初の日stackoverflow、歓迎:) – tusar

0

ほとんどの場合、ページはブラウザにキャッシュされます。

アプリケーションをサーバーページに設定して、キャッシュを無効にすると、ブラウザキャッシュからサーバーを取り出す代わりに、サーバーから読み込んでログアウトした状態が表示されます。

これを実行する方法は、問題の範囲外です。 「no-cache」と「Expires」ヘッダーのGoogle

0

あなたの秘密のページの<head>...</head>にnocacheタグを追加してください。

これは、ウェブサイトのページにアクセスすると、ページが自動的にブラウザにキャッシュされるためです。ログアウト後に戻ると、これらのページはブラウザキャッシュから直接配信されます。キャッシュを無効にして、ログアウト後に戻ると、それらのページがサーバーから再度呼び出されるようにする必要があります。