javaとjavascriptを使用して1つのタブ/ウィンドウにのみログインするようにユーザーを制限するにはどうすればよいですか?

ナラヤナレディ

私の要件は、ユーザーごとに1回のログインのようなアクセスを許可することです。そのために、ユーザーのログイン時にdbでログインステータスをtrueに更新し、ユーザーのログアウト時にfalseに更新しました。ただし、問題は、ユーザーがログアウトせずにウィンドウを閉じる場合です。

ウィンドウのクローズを処理するために、次のjsコードを実装しました

 var validNavigation = false;

 function wireUpEvents() {

  var dont_confirm_leave = 0; 
   var leave_message = 'You sure you want to leave?'
  function goodbye(e) {
    if (!validNavigation) {
     if (dont_confirm_leave!==1) {
         if(!e) e = window.event;
       //e.cancelBubble is supported by IE - this will kill the bubbling process.
       e.cancelBubble = true;
        e.returnValue = leave_message;
       //e.stopPropagation works in Firefox.
        if (e.stopPropagation) {
         e.stopPropagation();
         e.preventDefault();
          }
        //return works for Chrome and Safari
        return leave_message;
      }

      window.location = "logout.jsp";
    }
  }
  window.onbeforeunload=goodbye;

   // Attach the event keypress to exclude the F5 refresh
  $(document).bind('keypress', function(e) {
    if (e.keyCode == 116){
      validNavigation = true;
    }
  });

  // Attach the event click for all links in the page
  $("a").bind("click", function() {
    validNavigation = true;
  });

  // Attach the event submit for all forms in the page
  $("form").bind("submit", function() {
    validNavigation = true;
  });

   // Attach the event click for all inputs in the page
  $("input[type=submit]").bind("click", function() {
    validNavigation = true;
  });

  // Attach the event click for all inputs in the page
 $("input[type='button']").bind("click", function() {
   validNavigation = true;
 });

}

// Wire up the events as soon as the DOM tree is ready
$(document).ready(function() {
 wireUpEvents();
});

ここでは、ウィンドウを閉じる場合に機能します。つまり、ユーザーがウィンドウを閉じるとログアウトページに移動しますが、問題は、ユーザーがページをリロードしたときにページをログアウトすることでした。

したがって、上記のf5、submit、anchorタグのjsコードのようにreloadイベントをバインドする必要があります。

嘆願はこの点で私を助けてください。

前もって感謝します...

user2509223

2つのことが頭に浮かびました。

まず第一に、ユーザーがログインしているという事実は、何らかの活動が行われていることを意味するのではなく、ブラウザを実行したままPCをオンのままにしておく人もいます。

2つ目は、ユーザーがページを閉じても、必ずしもログアウトしたいという意味ではなく、ユーザーが2つのタブを使用してサイトをナビゲートする場合は特にそうです。

したがって、タブを閉じるときに確認するのではなく、他の場所からログインしたときにのみログアウトするか、一定の非アクティブ状態の後に自動的にログアウトするタイマーを設定することを検討することをお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ