1

動的Webアプリケーションを作成しました。ユーザーがすでにログインしているかどうかを確認するためのENABLED列のUSERテーブルがあります。

  • ENABLED =true->ログインしていない場合はログインしていない
  • ログインした場合、別のブラウザで同時にログインすることはできません
  • しかし、ログインしてブラウザを閉じた場合、それ以上のログインをどのように処理できますか?
4

2 に答える 2

0

ログインの履歴が必要でない限り、ユーザー セッションを維持するためにログイン ENABLED カラムを保持する必要はありません。以下は、目標を達成するための手順です。

  1. ユーザーがログイン ページを開いて初めてログインし、ログイン情報をセッション マップに保持します。
  2. ログアウト時に、セッション マップをクリアするか、セッションを無効にします ( httpSession.invalidate(); userSessionMap.remove(userName);)
  3. ユーザーがすでにログインしていて、他のブラウザーから試行している場合は、セッション マップを確認し、「既にログインしています。他の場所からログアウトしますか?」という警告を表示します。
  4. for 3, 「はい」と答えたら、以前のセッションを無効にして新しいログインを作成します
  5. セッション タイムアウトを維持する
  6. ログアウトせずにブラウザを閉じると、次のログイン ページで、新しいセッションが作成されるたびにポイント 3 で述べたのと同じ警告メッセージが表示されます。

それでおしまい。実装できることを願っています。

于 2012-11-24T18:01:46.847 に答える
0

通常、セッション タイムアウト (つまり 10 分) を指定します。これは、セッションが最後の接続から 10 分間有効であることを意味します。

おそらく、有効な列をセッションの有効期限を格納する日時列に変更できます。これは、ユーザーが行うすべての要求で更新する必要があります。

この有効期限より前に行われたログイン リクエストはエラーを返しますが、この有効期限を過ぎたログイン リクエストは成功する場合があります。

それが役に立てば幸い。

于 2012-11-24T14:35:31.683 に答える