如何使用Java和JavaScript限制用户仅在一个选项卡/窗口中登录?

纳拉纳瑞迪

我的要求是给予访问权限,就像每个用户一次登录一样,为此,我已将登录状态更新为db(在用户登录时为db),在用户注销时为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的js代码一样绑定reload事件,并提交和锚定标签。

在这方面,请帮助我。

提前致谢...

用户名

我想到两件事:

首先,用户已登录,这并不意味着正在进行任何活动,有些人在运行浏览器的情况下打开了PC。

其次,即使用户关闭页面,也不一定意味着他/她要注销,如果用户使用两个选项卡在您的网站上导航,则尤其如此。

因此,与其尝试检查他们何时关闭选项卡,不如考虑只在他们从其他地方登录时注销它们和/或设置一个计时器,使其在一定的不活动状态后自动注销的想法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

OSX:将终端窗口作为选项卡放置在另一个窗口中

在 VBA for Excel 中,如何将以下代码限制为仅在一个选项卡中运行?

如何确保在窗口上仅使用一个选项卡

如果第一个用户已经登录,如何防止第二个用户在另一个选项卡上登录

如何限制用户登录多个浏览器和选项卡

如果在单个窗口中打开多个选项卡,则getWindowHandles返回一个窗口句柄

使用JavaScript和Greasemonkey重新加载Firefox中的一个选项卡?

仅在一个选项卡上的操作脚本

仅在Firefox / Chrome扩展程序的一个选项卡中禁用/启用javascript(使用Web扩展程序)

如何使用具有一个功能的 Javascript 创建多选项卡?

我想要一些登录用户的两个选项卡和一些登录用户的三个选项卡是否可以隐藏选项卡

如何仅在一个选项卡中打开Firebug

是否有一个窗口管理器允许一个窗口中包含多个不同程序的选项卡?(例如Windows 10套)?

如何使用JavaScript激活第二个选项卡而不是第一个选项卡?

如何取消在另一个外壳(终端窗口或选项卡)中启动的作业?

如何使用选项卡显示特定用户的信息,而不仅仅是第一个

在相同的选项卡和窗口中运行脚本

在多个选项卡之间,如何使用Vimperator在当前选项卡之后立即打开一个选项卡

如何阻止用户在另一个选项卡中打开网站?

JavaScript在新窗口中打开,而不是选项卡

如何使用下一个和上一个链接制作一个简单的选项卡

如何在菜单和窗口中按选项卡显示鱼壳的完成

使用多个输入启用选项卡并使用一个输入禁用选项卡

使用vba创建一个新的Ribbon选项卡,该选项卡仅在选择某些形状时出现

仅在一个窗口中绘图

在Spring Security中,如何限制用户从多个浏览器/选项卡登录?

如何从选项卡内部更改为另一个选项卡?

打开一个选项卡时如何删除其他选项卡

如何使用 JavaScript 中的坐标在另一个选项卡中打开 Google 地图?