【问题标题】:How to logout from all tab, if logged out from one? In java.如果从一个标签中注销,如何从所有标签中注销?在爪哇。
【发布时间】:2017-12-01 18:06:54
【问题描述】:

我开发了一个 servlet jsp 应用程序。我正在使用 JSP、Java-Servlet 和 ajax。会话也使用。如果我从一个选项卡注销,如何从其他选项卡注销并刷新其他选项卡中的页面。请帮忙。

【问题讨论】:

    标签: java jquery jsp session


    【解决方案1】:

    为了实现这一点,首先我们不应该使用 cookie 来存储任何敏感数据,例如身份验证令牌。即使会话 cookie 也不够用,因为它会在关闭选项卡后甚至在完全关闭浏览器后继续存在。

    这让我们将令牌保存在内存或 sessionStorage 中。 sessionStorage 的好处是它会在不同的页面和浏览器刷新之间持续存在。因此,用户可以导航到不同的页面和/或刷新页面并仍然保持登录状态。

    有一种机制可以利用浏览器 sessionStorage 或 memoryStorage 的安全特性进行身份验证,并且仍然允许用户打开多个选项卡,而无需每次都重新登录。

    相关浏览器存储机制的复习

    localStorage ~5MB,无限保存或直到用户手动删除它。 sessionStorage ~5MB,在当前标签的生命周期内保存 cookie ~4KB,可以保存到无穷大 会话 cookie ~4KB,当用户关闭浏览器时删除(并不总是删除)

    在标签之间共享 memoryStorage 以实现安全的多标签身份验证

    所以……这将是在浏览器会话中保留身份验证令牌的唯一真正安全的方法,并且允许用户打开多个选项卡而无需重新登录

    关闭选项卡,会话就消失了——这次是真的。

    【讨论】:

      【解决方案2】:

      我们可以使用 Storage 事件在 localStorage 值发生更改时得到通知。

      function storageChange (event) {
      
      if(event.key === 'logged_in') {
          alert('Logged in: ' + event.newValue)
      }
      }
      window.addEventListener('storage', storageChange, false);
      

      例如,如果其中一个选项卡注销,则将 false 设置为 logged_in,如下所示:

      window.localStorage.setItem('logged_in', false)
      

      然后所有其他选项卡都会收到一个StorageEvent,并且会出现一个警报:

      Logged in: false
      

      这里实际上当 localStorage 获取更改侦听器时被调用。 然后您可以编写自己的代码来注销会话。并重新加载到登录页面。

      【讨论】:

      • 'logged_in' ===> 在哪里设置这个值?
      • 你可以设置任何标题,它不像只使用“logged_in”,它是存储在localStorage中的key,我们可以添加监听器......当你添加代码时window.localStorage.setItem( 'logged_in',假);它在浏览器的 localStorage 中将键设置为“logged_in”。
      • window.localStorage.setItem('logged_in', false); ===> 我们是手动做的。我需要先设置它吗?我应该在哪里设置 TRUE?
      • 是在代码中,而你的JS的注销功能被调用。
      • 实际上在注销后,如果您希望在登录单个选项卡后登录所有选项卡,那么在登录 JS 函数中,您可以将其设置为 true 以再次调用侦听器。登录所有选项卡。为此,您必须在 storageChange(){} 中添加条件
      猜你喜欢
      • 2017-06-25
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      相关资源
      最近更新 更多