一种用户登录控制方法、装置及相关设备与流程

文档序号:36816561发布日期:2024-01-26 16:22阅读:25来源:国知局
一种用户登录控制方法、装置及相关设备与流程

本技术涉及数据安全,尤其涉及一种用户登录控制方法、装置及相关设备。


背景技术:

1、登录模块是管理信息系统中最基础的模块之一,单用户登录控制是登录模块常见的功能需求,即要求每个用户账户,只允许一个客户端处于登录状态,当使用同一个用户名在新的客户端发起登录请求时,将上一个登录的客户端置为登出状态,主要用于避免多个客户端同时使用一个账号进行操作产生的业务异常。实现单用户登录控制时,往往需要借助websocket对新登录的客户端和需要登出的客户端进行实时提示,避免被登出的用户由于不知道自己已处于登出状态进行无效操作,提高用户体验。在单服务器节点的系统中,用户状态的存储和websocket的维护都在同一台服务器,所以用户登录状态的控制和基于websocket的客户端消息提示的实现比较简单。然而随着系统的扩展,分布式系统的应用越来越多。而在分布式系统环境中,在实现对用户的登录控制时,需要借助分布式锁或通过脚本实现原子性的检查逻辑,否则可能出现同一账户在多个客户端同时在线的问题,影响用户账户的操作和使用安全性。然而使用分布式锁会造成系统额外的资源占用,提高系统的工作成本。为此,提供一种适用于分布式系统中用于进行登录控制,且资源占用低的方法,就成了行业亟需解决的技术问题。


技术实现思路

1、有鉴于此,本技术实施例提供一种用户登录控制方法、装置及相关设备,以至少部分解决上述问题。

2、第一方面,本技术实施例提供一种用户登录控制方法,包括:

3、确定登录成功的用户的登录信息,所述登录信息至少包括客户端标识信息、用户名、登录地址信息和登录时间信息;

4、根据所述登录信息建立分布式系统的客户端与服务端的通信连接;

5、将所述登录信息存储在本地会话缓存中,并通过所述通信连接,将所述登录信息传输所述分布式系统配套使用的缓存服务器中;

6、基于所述缓存服务器中的存储信息,确定所述用户是否在分布式系统中的其他客户端上登录;

7、当确定用户在其他客户端上登录时,将新登录的用户的登录信息通过消息队列广播给分布式系统的各个应用服务器,所述新登录的用户的登录信息包含新登录成功的用户的客户端标识信息和新登录时间信息;

8、根据所述新登录的用户的登录信息,利用所述应用服务器对其他客户端上登录的相同用户名但登录时间早于所述新登录时间信息的用户进行登出操作。

9、可选地,在本技术的一种实施例中,在根据所述新登录的用户的登录信息,对其他客户端上登录的相同用户名但登录时间早于所述新登录时间信息的用户进行登出操作之后,所述方法还包括:基于登出操作的结果对所述缓存服务器中的存储信息进行更新,并生成对应登出操作的提示信息向所述客户度进行信息反馈。

10、可选地,在本技术的一种实施例中,所述将所述登录信息存储在本地会话缓存中,并通过所述通信连接,将所述登录信息传输所述分布式系统配套使用的缓存服务器中,包括:

11、将所述登录信息转换为预设格式的键值对信息后存储在本地会话缓存中和所述分布式系统配套使用的缓存服务器中;

12、其中,所述预设格式的键值对信息是基于所述客户端标识信息,以及所述用户名信息、登录地址信息和登录时间生成的。

13、可选地,在本技术的一种实施例中,所述基于所述缓存服务器中的存储信息,确定所述用户是否在分布式系统中的其他客户端上登录,包括:

14、基于所述缓存服务器的键值配置登录监听机制,用于开启或关闭所述分布式系统的单用户登录控制功能。

15、可选地,在本技术的一种实施例中,基于所述缓存服务器的键值配置登录监听机制,包括:

16、在所述缓存服务器中使用键值对enable-single-login:(true/false)标识单用户登录控制功能的开启和关闭状态,以通过所述缓存服务器对键值对enable-single-login的修改进行监听;

17、当监听到所述键值enable-single-login为true,则说明所述分布式系统的单用户登录功能从禁用状态变为可用状态,此时对所有已登录的用户执行强制登出操作,并通过所述websocket会话向所有客户端发送提示消息。

18、可选地,在本技术的一种实施例中,所述根据所述登录信息建立分布式系统的客户端与服务端的通信连接,包括:

19、生成对应所述登录成功的客户端的websocket连接请求;

20、根据所述websocket连接请求,建立所述登录成功的客户端与分布式系统服务端的websocket会话通信。

21、可选地,在本技术的一种实施例中,所述根据所述websocket连接请求,建立所述登录成功的客户端与分布式系统服务端的websocket会话通信,包括:

22、复用所述websocket连接请求头中的websocket-protocol字段传输所述登录成功的客户端的客户端标识信息;

23、根据所述客户端标识信息,基于websocket协议要求,将客户端标识填充到会话响应信息的信息头的sec-websocket-protocol字段中,以建立所述登录成功的客户端与分布式系统服务端的websocket会话通信。

24、第二方面,本技术实施例还提供一种登录控制装置,包括:

25、确定模块,用于确定当前登录成功的用户的登录信息,所述登录信息至少包括客户端标识信息、用户名、登录地址信息和登录时间信息;

26、会话模块,用于根据所述登录信息建立分布式系统的客户端与服务端的通信连接;

27、存储模块,用于将所述登录信息存储在本地会话缓存中,并通过所述通信连接,将所述登录信息传输所述分布式系统配套使用的缓存服务器中;

28、检测模块,用于基于所述缓存服务器中的存储信息,确定所述用户是否在分布式系统中的其他客户端上登录;

29、广播模块,用于当确定用户在其他客户端上登录时,将新登录的用户的登录信息通过消息队列广播给分布式系统的各个应用服务器,所述新登录的用户的登录信息包含新登录成功的用户的客户端标识信息和新登录时间信息;

30、处理模块,用于根据所述新登录的用户的登录信息,利用所述应用服务器对其他客户端上登录的相同用户名但登录时间早于所述新登录时间信息的用户进行登出操作。

31、第三方面,本技术实施例还提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,所述计算机可执行指令被执行时执行如本技术第一方面任意一项所述的用户登录控制方法。

32、第四方面,本技术实施例还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本技术第一方面所述的任意一种用户登录控制方法。

33、本技术提供了一种用户登录控制方法、装置及相关设备,通过确定登录成功的用户的登录信息,根据登录信息生成连接请求建立分布式系统的客户端与服务端的通信连接,将登录信息存储在本地会话缓存中,并通过通信连接,将登录信息传输到分布式系统配套使用的缓存服务器中,基于缓存服务器中的存储信息,确定用户是否在分布式系统中的其他客户端上登录,当确定用户在其他客户端上登录时,将新登录信息通过消息队列广播给分布式系统的各个应用服务器,根据所述新登录的用户的登录信息,利用所述应用服务器对其他客户端上登录的相同用户名但登录早的用户进行登出操作。本技术通过使用集中式缓存和本地缓存,消息广播队列和websocket技术实现分布式系统架构下的单用户登录控制及客户端提示。使用时间信息处理分布式系统不同客户端登录一致性问题,避免使用分布式锁造成的额外资源占用和使用成本。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1