返回顶部
首页 > 资讯 > 前端开发 > JavaScript >js关闭浏览器时退出账号的处理
  • 549
分享到

js关闭浏览器时退出账号的处理

2024-04-02 19:04:59 549人浏览 独家记忆
摘要

目录经典做法 问题 进一步问题 需要注意问题 经典做法 众所周知,为了账户安全,用户未主动点击注销系统时,直接关闭浏览器或标签页强制退出系统的方法: // 关闭时调用注销接口

经典做法

众所周知,为了账户安全,用户未主动点击注销系统时,直接关闭浏览器或标签页强制退出系统的方法:


// 关闭时调用注销接口
window.onbeforeunload = function() {
 //执行注销ajax调用,简单示例
 $.ajax({url:"/loGout"});
};

问题

此方式有严重问题, 会造成刷新页面时也被调用注销, 很多系统必须支持刷新页面保持会话,如何处理?

没有办法的解决方案, 但有效:


// 关闭时调用注销接口
window.onbeforeunload = function() {
 //执行注销ajax调用, 传入标志, 告诉后台延时注销
 $.ajax({url:"/logout"},data:{delay:true});
};

后台注销接口根据delay标志, 设置定时器,进行延时注销, 比如设置5秒定时器,5秒后,才真正注销应用系统会话。

同时,前端页面加载后,要立刻调用一个清除注销的接口, 告诉后台删除延时注销定时器,确保刷新页面时放弃之前的注销操作,以保持应用会话。

进一步问题

后台定时器设置多少延时可靠? 当然希望越短越好, 因为可以确保用户关闭浏览器后, 重新打开页面,不至于重新保持会话, 例如后台设置5秒定时器, 用户关闭浏览器, 重新打开页面之间间隔只要大于5秒, 则会话将不会恢复, 确保重新进入登陆页面。 当然,如果用户手速过高,5秒内重新打开页面,则会成功进入上一个会话, 当然这不会造成严重问题, 因为恶意用户不可能非常快的使用用户离开的电脑并打开页面。

然后呢? 到底设置多少秒延时为好? 这取决于 前端代码加载页面时调用清除延时注销定时器的时机, 关键点是,越早越好。
如何越早呢? 当然是 需要把此调用放在主页的尽可能提前的代码中,比如:


<html manifest="">
 <head>
  <meta Http-equiv="X-UA-Compatible" content="IE=edge">
  <meta charset="UTF-8">
  <meta http-equiv="Pragma" content="no-cache">
  <meta http-equiv="Cache-Control" content="no-cache">
  <meta http-equiv="Expires" content="0">
  
  <script type="text/javascript">
   //为了尽快调用清除延时注销定时器, 使用原始XMLHttpRequest方式进行调用
   var xhr = new XMLHttpRequest();
   if (xhr) {
    xhr.open("POST", '/clearlogout', true);
    xhr.send();
   }
  </script>

  ......

经过上述处理, 一般正常的网络情况下, 刷新页面操作可确保 调用延时注销 和 清除延时注销之间的时间间隔很短, 一般来说, 5秒是较为合理的延时值。
使用此机制的使用可根据偏好, 比如希望更安全,还是希望更确保刷新体验, 来决定延长还是缩短延时调用定时器。

需要注意问题

显然,上述机制必须依赖后端双层会话机制,因为前提是必须首先支持刷新页面会话保持, 所以 表层是WEB框架本身的session, 内层是应用层会话。 表层会话依赖cookie,内层应用会话依赖后台缓存机制或者数据库

到此这篇关于js关闭浏览器时退出账号的处理的文章就介绍到这了,更多相关js关闭浏览器时退出账号内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: js关闭浏览器时退出账号的处理

本文链接: https://lsjlt.com/news/159111.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • js关闭浏览器时退出账号的处理
    目录经典做法 问题 进一步问题 需要注意问题 经典做法 众所周知,为了账户安全,用户未主动点击注销系统时,直接关闭浏览器或标签页强制退出系统的方法: // 关闭时调用注销接口 ...
    99+
    2024-04-02
  • js关闭浏览器时退出账号怎么处理
    这篇文章主要讲解了“js关闭浏览器时退出账号怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“js关闭浏览器时退出账号怎么处理”吧!经典做法众所周知,为了账户安全,用户未主动点击注销系统...
    99+
    2023-06-21
  • vue关闭浏览器退出登录的实现示例
    目录1、beforeunload事件2、unload事件3、源码部分  项目需要:也在网上找了不少类似的文章,不过用起来多少有点问题,毕竟要适合自己的需求,我这里是vue3适用,理论...
    99+
    2024-04-02
  • vue关闭浏览器退出登录怎么实现
    本篇内容介绍了“vue关闭浏览器退出登录怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、beforeunload事件1、菜鸟教程:...
    99+
    2023-06-21
  • win10如何关闭IE浏览器账号密码自动填充功能
    这篇文章主要介绍win10如何关闭IE浏览器账号密码自动填充功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 1.登录到win10系统桌面,点击打开IE浏览器,在打开的IE浏览器界面中,点击右上角的设置按...
    99+
    2023-06-28
  • JS监控关闭浏览器操作的示例分析
    这篇文章给大家分享的是有关JS监控关闭浏览器操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JS监控关闭浏览器操作的实例详解需求如下: 用户关闭浏览器通知后台。 方案...
    99+
    2024-04-02
  • 浏览器关闭多个选项时没弹出提示怎么办
    这篇文章将为大家详细讲解有关浏览器关闭多个选项时没弹出提示怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1.首先登录到电脑桌面,点击打开浏览器,在打开的浏览器窗口中点击“工具”,然后打开...
    99+
    2023-06-28
  • Win8 IE浏览器如何关闭弹出是否关闭所有选项卡的警告
      很多使用Win8系统的用户抱怨,IE浏览器打开多个选项卡时,如果点击浏览器窗口的关闭按钮,就会弹出是否关闭所有选项卡的警告。这问题该怎么解决呢   解决方法   1、打开“Internet选...
    99+
    2022-06-04
    弹出 选项卡 浏览器
  • 事务未完成导致关闭对象审计时出现[-6407]:Lock timeout.错误的处理记录
    事务未完成导致关闭对象审计时出现[-6407]:Lock timeout.错误。如下所示。 SQL> sp_noaudit_object('INSERT','SYS...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作