[发明专利]基于WebSocket进行用户强制实时下线的方法有效
申请号: | 202110201924.8 | 申请日: | 2021-02-23 |
公开(公告)号: | CN112968963B | 公开(公告)日: | 2023-03-24 |
发明(设计)人: | 袁柯 | 申请(专利权)人: | 上海昊沧系统控制技术有限责任公司 |
主分类号: | H04L67/02 | 分类号: | H04L67/02;H04L67/143;H04L9/40;H04L67/1097;H04L67/568 |
代理公司: | 上海段和段律师事务所 31334 | 代理人: | 李佳俊;郭国中 |
地址: | 201100 上海市闵*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 websocket 进行 用户 强制 实时 下线 方法 | ||
1.一种基于WebSocket进行用户强制实时下线的方法,其特征在于,包括:
步骤1:用户登录,服务端维护用户会话;
步骤2:服务端监听用户会话变化,通过WebSocket发送下线消息到用户在线状态服务中;
步骤3:服务端拦截所有Http请求,校验所属用户会话是否有效;
步骤4:客户端连接WebSocket服务;
步骤5:客户端订阅WebSocket用户在线状态服务;
步骤6:客户端通过WebSocket接收到用户下线消息;
步骤7:客户端发起Http请求,被服务端拦截后发现所属会话失效,表明用户已下线;
步骤8:客户端进行下线处理;
所述步骤6包括:在当前用户会话由于具体业务限制被挤下失效时,客户端会通过WebSocket实时收到当前用户会话的下线消息;
所述步骤7包括:
步骤7.1:在客户端不支持WebSocket或WebSocket连接不稳定的情况下,未及时收到服务端的下线通知,继而客户端携带失效的认证凭据Token,在页面进行正常功能操作,发送业务请求;
步骤7.2:服务端对请求进行全局校验,在用户会话失效的情况下响应401请求;
所述步骤8包括:
步骤8.1:客户端通过被动接收到用户下线消息,或主动请求时发现响应状态为401,得知当前会话已失效;
步骤8.2:根据下线消息,向用户强制展示提示信息,同时禁止所有功能操作,并清除本地保留的认证凭据Token;
步骤8.3:用户确认下线消息后,客户端跳转至登录页面。
2.根据权利要求1所述的基于WebSocket进行用户强制实时下线的方法,其特征在于,所述步骤1包括:
步骤1.1:在客户端通过用户的账号凭据向服务端发起登录请求;
步骤1.2:服务端进行账号认证并创建会话,服务端获取账号凭据后,查询数据库用户信息进行匹配校验,校验通过后生成用户会话标识SID;
步骤1.3:服务端维护用户会话白名单,白名单用于记录当前所有的有效会话记录,以key-value的数据结构形式,key为用户会话标识SID,value为当前用户标识UID、登录时间的登录信息,存储到分布式缓存服务中,缓存过期时间为用户会话有效期;
步骤1.4:服务端维护用户会话黑名单,用于记录过去预设时间内的无效会话记录,包含会话下线原因详情,所有从白名单移除的会话,都会移入到黑名单中;
步骤1.5:服务端响应登录请求,服务端返回包含用户会话标识SID、用户标识UID的认证凭据Token给客户端;
步骤1.6:客户端保留认证凭据Token,待后续请求时携带到服务端。
3.根据权利要求1所述的基于WebSocket进行用户强制实时下线的方法,其特征在于,所述步骤2包括:
步骤2.1:服务端监听用户会话黑名单的新增事件;
步骤2.2:获取新增事件对应的用户会话记录,以用户会话标识SID为key获取其映射的WebSocket会话标识WS-SID,继而以WS-SID向订阅了用户在线状态服务的WebSocket会话发送用户会话记录,包含下线原因,进行下线消息通知。
4.根据权利要求1所述的基于WebSocket进行用户强制实时下线的方法,其特征在于,所述步骤3包括:
步骤3.1:服务端对所有常规请求进行全局拦截,获取其携带的认证凭据Token中的用户会话标识SID;
Web程序运行在tomcat或undertow服务器容器中,通过容器本身提供的过滤器类,或者程序语言JAVA提供的拦截器类,对进入的请求进行筛选拦截处理,获取到携带的参数信息,放行有效信息,打回无效信息;
步骤3.2:判断用户会话标识SID是否在用户会话白名单缓存中,若不在,则说明当前会话失效,同时以会话标识SID为key,在用户会话黑名单中查找详细下线原因,终止请求流程,将响应状态设置为401,同时返回具体下线消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海昊沧系统控制技术有限责任公司,未经上海昊沧系统控制技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110201924.8/1.html,转载请声明来源钻瓜专利网。