CN117155993A - 在线状态计算方法、设备和介质 - Google Patents
在线状态计算方法、设备和介质 Download PDFInfo
- Publication number
- CN117155993A CN117155993A CN202311410204.8A CN202311410204A CN117155993A CN 117155993 A CN117155993 A CN 117155993A CN 202311410204 A CN202311410204 A CN 202311410204A CN 117155993 A CN117155993 A CN 117155993A
- Authority
- CN
- China
- Prior art keywords
- session
- server
- user
- request
- account
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 235000014510 cooky Nutrition 0.000 claims description 7
- 230000002035 prolonged effect Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 8
- 230000007547 defect Effects 0.000 abstract 1
- 230000007246 mechanism Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于计算机技术领域,公开了一种在线状态计算方法、设备和介质,所述方法包括:客户端向服务器发送用户的登录请求;其中,登录请求包括账号和密码;服务器判断账号和密码是否匹配;若匹配,服务器为用户创建一个session并采用加密算法生成一个唯一的sessionID,将sessionID存储在服务器中并将sessionID发送到客户端进行存储;在该账号登录成功后,基于该账号,客户端每次向服务器发送请求时,客户端将请求和sessionID一起发送给服务器;服务器接收到请求后,根据sessionID查询对应的session信息;服务器根据session信息判断session是否过期;若过期,则判定用户已经离线;若没有过期,则判定用户仍然在线。本发明避免了心跳检测方法计算在线状态存在的缺陷以及能够更加准确和高效地计算在线状态。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及到一种在线状态计算方法、设备和介质。
背景技术
在当今的Web应用程序中,用户在线状态的计算对于提供个性化、实时的用户体验至关重要。在线状态计算是指判断用户当前是否仍然在线的过程。传统的在线状态计算方法通常使用心跳机制,即定期发送心跳请求来确认用户的在线状态。然而,这种方法存在一些问题,如增加服务器负载和网络流量、误判用户的在线状态等。因此,如何解决这些问题且提供更准确和高效的在线状态计算方法是亟需解决的技术问题。
发明内容
本发明的主要目的为提供一种在线状态计算方法、设备和介质,旨在解决现有在线状态计算方法存在的技术问题以及提供更加准确和高效的在线状态计算方法。
为了实现上述发明目的,本发明第一方面提出一种在线状态计算方法,所述方法包括:
客户端向服务器发送用户的登录请求;其中,所述登录请求包括账号和密码;
所述服务器接收所述账号和所述密码并判断所述账号和所述密码是否匹配;
若匹配,则登录成功,且所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionID,将所述sessionID存储在所述服务器的会话存储中并将所述sessionID发送到所述客户端进行存储;
在所述账号登录成功后,基于所述账号,所述客户端每次向所述服务器发送请求时,所述客户端将所述请求和所述sessionID一起发送给所述服务器;
所述服务器接收到所述请求后,根据所述sessionID查询对应的session信息;
所述服务器根据所述session信息判断所述session是否过期;
若过期,则判定所述用户已经离线;
若没有过期,则判定所述用户仍然在线。
进一步的,所述采用加密算法生成一个唯一的sessionID的步骤包括:
采用随机数生成器生成一个随机的种子值;
将所述种子值、所述账号以及时间戳作为输入传递给加密算法进行哈希运算生成一个唯一的sessionID。
进一步的,所述session信息包括session的过期时间,所述服务器根据所述session信息判断所述session是否过期的步骤包括:
当所述服务器接收到所述请求后,获取当前时间以及session的过期时间;
所述服务器比较所述当前时间和所述session的过期时间;
若所述当前时间晚于或等于所述session的过期时间,则判定所述session过期;
若所述当前时间早于所述session的过期时间,则判定所述session未过期。
进一步的,所述判定所述session未过期的步骤之后,还包括:
所述服务器获取所述session的有效期延长时间;
所述服务器利用所述session的有效期延长时间更新所述session的过期时间。
进一步的,所述服务器获取所述session的有效期延长时间的步骤包括:
所述服务器获取所述登录请求中携带的账号;
所述服务器在数据库中搜索出所述账号的级别;其中,所述数据库中预先存储有各账号的级别;
所述服务器根据账号级别与session的有效期延长时间的对应关系确定所述账号对应的session的有效期延长时间;其中,账号级别越高,会话有效期延长时间越短。
进一步的,所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionID的步骤之后还包括:
所述服务器监测所述账号是否注销或以及所述客户端是否长时间未基于所述账号发起请求;
若监测到所述账号已注销或所述客户端长时间未基于所述账号发起请求,所述服务器将所述session销毁并判定所述用户已经离线。
进一步的,所述将所述session销毁的步骤包括:
将所述session删除或将所述session标记为已销毁。
进一步的,所述sessionID通过HTTP请求头、Cookie以及URL参数中的任意一种或多种方式传递到所述服务器。
第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述的线状态计算方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的线状态计算方法的步骤。
有益效果
本申请实施例相比于传统的心跳检测方法具有如下有益效果:
1、传统的心跳检测方法需要定期发送心跳请求来判断用户的在线状态,这会增加服务器的负载和网络流量,而本申请实施例基于session的在线状态计算方法只在用户发起请求时进行会话验证,减轻了服务器的负载和网络流量。服务器只需要在接收到请求时验证session的有效性,不需要额外的心跳请求,从而提高了服务器的处理能力,降低了***的资源消耗。
2、本申请实施例当用户发起请求时,服务器会根据sessionID查找对应的session信息,并判断session是否过期,如果session过期,则认为用户已离线;如果session未过期,则认为用户仍然在线。相比于传统的心跳检测方式,基于session的在线状态计算方法更加准确,可以更及时地反映用户的在线状态。
3、session机制是一种轻量级的状态管理机制,不需要维护大量的在线状态信息。服务器只需要根据sessionID查找对应的session信息,然后判断session是否过期即可。这种高效的session管理方式可以在大规模用户和高并发请求的情况下进行高效的在线状态计算。同时,基于session的在线状态计算方法可以通过使用分布式会话存储来支持高可用和可扩展性,满足***的扩展需求。
4、基于session的在线状态计算方法可以灵活地管理session。可以根据业务需求设置不同的session过期时间,以满足不同的需求。例如,可以设置较短的session过期时间来实现较精确的在线状态判断,也可以设置较长的session过期时间来减少session验证的频率。同时,session机制也可以支持其他功能,如用户认证、权限管理等。
5、采用加密算法生成唯一的sessionID,可以确保生成的sessionID的随机性、不可预测性以及增加sessionID的安全性,从而确保会话机制的安全性,从而提高在线状态计算的准确性和可靠性。
综上,本申请实施例基于session机制的在线状态计算方法可以提供更准确、高效和可扩展的在线状态管理方案。通过减少服务器负载和网络流量、更准确判断用户的在线状态、高效且可扩展的session管理以及灵活的session管理,可以提供更好的用户体验,并提升***的性能和可用性。
附图说明
图1为本申请一实施例提供的在线状态计算方法的流程示意图;
图2是本申请一实施例提供的计算机设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“上述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件、模块、模块和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、模块、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一模块和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
参照图1,本发明实施例提供一种在线状态计算方法,所述方法包括:
S1、客户端向服务器发送登录请求;其中,所述登录请求包括账号和密码。
在步骤S1中,具体地,用户在客户端上进行操作,打开登录页面或通过应用程序进入登录界面。用户在登录页面或登录界面输入账号和密码,点击登录按钮后,客户端向服务器发送登录请求,其中,登录请求中携带将用户输入的账号和密码,即客户端会将账号和密码发送到服务器。
S2、所述服务器接收所述账号和所述密码并判断所述账号和所述密码是否匹配。
在步骤S2中,账号一般用于身份验证,验证用户的身份以确定其是否具有访问特定资源或执行特定的操作,通过登录账号,***可以识别用户并确认其权限,以确保只有合法授权的用户进行相关的操作。本发明实施例通过判断账号和密码是否匹配,可以验证用户是否可以具有访问服务器中指定资源的功能。具体地,服务器的数据库中预先存储有大量的账号以及与账号对应的密码,当服务器接收到登录请求携带的账号和密码后,服务器首先会在数据库中搜索与登录请求相同的账号,若搜索不到,则判定账号未注册,向客户端返回账号未注册的提示信息,若搜索得到,则在数据库中获取该账号对应的密码,将该密码与登录请求携带的密码进行比较,若相同,则判定登录请求中携带的账号和密码匹配,并向客户端返回登录成功的提示信息,若不同,则判定登录请求中携带的账号和密码不匹配,并向客户端返回登录失败的提示信息。
S3、若匹配,则登录成功,且所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionID,将所述sessionID存储在所述服务器的会话存储中并将所述sessionID发送到所述客户端进行存储。
在步骤S3中,session指的是会话。sessionID指的是会话ID,会话ID是一个唯一的标识符。sessionID与用户的身份相关联,如sessionID与账号相关联,并存储在服务器端的会话存储中,如存储在内存、数据库等,这样,通过sessionID便可以确认用户的身份。
S4、在所述账号登录成功后,基于所述账号,所述客户端每次向所述服务器发送请求时,所述客户端将所述请求和所述sessionID一起发送给所述服务器。
在步骤S4中,在所述账号登录成功后,用户在这个账号下进行操作的前提下,用户操作客户端向服务器发送请求时,客户端将请求和sessionID一起发送给所述服务器,这样,服务器可以根据sessionID判断该请求属于哪一个对话。
S5、所述服务器接收到所述请求后,根据所述sessionID查询对应的session信息。
在步骤S5中,sessionID与用户的身份相关联,因此,通过sessionID可以查询到对应用户的session信息,即会话信息,会话信息是指在服务器端存储的与会话相关的数据,包括存储会话的配置信息,如session的过期时间,语言偏好等。还可以包括用户数据,如用户名,用户ID,用户偏好设置等等。
S6、所述服务器根据所述session信息判断所述session是否过期。
在步骤S6中,当session信息中包括session的过期时间时,可以根据session的过期时间判断session是否过期.
S7、若过期,则判定所述用户已经离线。
S8、若没有过期,则判定所述用户仍然在线。
在步骤S7、S8中,若session(会话)过期,则判定用户已经离线,若没有过期,则认为用户仍然在线。在线指的是用户处于活跃状态,即用户在一段时间内有活动操作,如点击、键盘输入等。如果用户一段时间内没有活动操作,则为离线状态。比如,对于某一款APP,用户登录账号后,若长时间没有在该款APP上操作,即认为用户已经离线,若用户在一段时间内有在该款APP上操作,即认为用户仍然在线。
本申请实施例相比于传统的心跳检测方法具有如下有益效果:
1、传统的心跳检测方法需要定期发送心跳请求来判断用户的在线状态,这会增加服务器的负载和网络流量,而本申请实施例基于session的在线状态计算方法只在用户发起请求时进行会话验证,减轻了服务器的负载和网络流量。服务器只需要在接收到请求时验证session的有效性,不需要额外的心跳请求,从而提高了服务器的处理能力,降低了***的资源消耗。
2、本申请实施例当用户发起请求时,服务器会根据sessionID查找对应的session信息,并判断session是否过期,如果session过期,则认为用户已离线;如果session未过期,则认为用户仍然在线。相比于传统的心跳检测方式,基于session的在线状态计算方法更加准确,可以更及时地反映用户的在线状态。
3、session机制是一种轻量级的状态管理机制,不需要维护大量的在线状态信息。服务器只需要根据sessionID查找对应的session信息,然后判断session是否过期即可。这种高效的session管理方式可以在大规模用户和高并发请求的情况下进行高效的在线状态计算。同时,基于session的在线状态计算方法可以通过使用分布式会话存储来支持高可用和可扩展性,满足***的扩展需求。
4、基于session的在线状态计算方法可以灵活地管理session。可以根据业务需求设置不同的session过期时间,以满足不同的需求。例如,可以设置较短的session过期时间来实现较精确的在线状态判断,也可以设置较长的session过期时间来减少session验证的频率。同时,session机制也可以支持其他功能,如用户认证、权限管理等。
5、采用加密算法生成唯一的sessionID,可以确保生成的sessionID的随机性、不可预测性以及增加sessionID的安全性,从而确保会话机制的安全性,从而提高在线状态计算的准确性和可靠性。
综上,本申请实施例基于session机制的在线状态计算方法可以提供更准确、高效和可扩展的在线状态管理方案。通过减少服务器负载和网络流量、更准确判断用户的在线状态、高效且可扩展的session管理以及灵活的session管理,可以提供更好的用户体验,并提升***的性能和可用性。
在一实施例中,所述采用加密算法生成一个唯一的sessionID的步骤包括:
采用随机数生成器生成一个随机的种子值;
将所述种子值、所述账号以及时间戳作为输入传递给加密算法进行哈希运算,生成一个唯一的sessionID。
在本申请实施例中,结合随机种子、账号以及时间戳可以生成一个唯一的sessionID,使用加密算法可以确保生成的sessionID的随机性、不可预测性以及增加sessionID的安全性,从而确保会话机制的安全性,进而提高在线状态计算的准确性和可靠性。
在一实施例中,所述session信息包括session的过期时间,所述服务器根据所述session信息判断所述session是否过期的步骤包括:
当所述服务器接收到所述请求后,获取当前时间以及session的过期时间;
所述服务器比较所述当前时间和所述session的过期时间;
若所述当前时间晚于或等于所述session的过期时间,则判定所述session过期;
若所述当前时间早于所述session的过期时间,则判定所述session未过期。
在本申请实施例中,当服务器接收到请求后的时刻起,服务器获取当前时间,比如,当服务器是在10:20接收到请求的,那么10:20则为当前时间,session的过期时间是一个动态的时间,如果用户在session有效期内发起了新的请求,则session的过期时间会被刷新,从而延长session的有效期。在获取到当前时间和session的过期时间后,通过比较,若所述当前时间晚于或等于所述session的过期时间,比如,当前时间是10:20,session的过期时间是10:00,那么判定所述session过期;若当前时间是10:20,session的过期时间是10:40,那么判定所述session未过期。
本申请实施例基于session的在线状态计算方法通过session(会话)的过期时间来判断用户的在线状态,当用户发起请求时,服务器会根据sessionID查找对应的session的过期时间,并判断session是否过期,如果session过期,则认为用户已离线;如果session未过期,则认为用户仍然在线。相比于传统的心跳检测方式,基于session的在线状态计算方法更加准确,可以更及时地反映用户的在线状态。
在一实施例中,所述判定所述session未过期的步骤之后,还包括:
所述服务器获取所述session的有效期延长时间;
所述服务器利用所述session的有效期延长时间更新所述session的过期时间。
在本申请实施例中,所述session的有效期延长时间是预先设置的,比如,session的有效期延长时间是30分钟。若session的过期时间是10:00,那么利用session的有效期延长时间更新session的过期时间后,session的过期时间变为10:30。
当session未过期时,且用户发起了新的请求,这时利用session的有效期延长时间更新所述session的过期时间,可以更加准确地反映用户的状态。
进一步的,所述服务器获取所述session的有效期延长时间的步骤包括:
所述服务器获取所述登录请求中携带的账号;
所述服务器在数据库中搜索出所述账号的级别;其中,所述数据库中预先存储有各账号的级别;
所述服务器根据账号级别与session的有效期延长时间的对应关系确定所述账号对应的session的有效期延长时间;其中,账号级别越高,会话有效期延长时间越短。
在本申请实施例中,通过设置不同账号级别对应不同的session的有效期延长时间,可以更准确确定用户的状态,即用户处于在线状态还是离线状态。具体地,账号级别越高,则用户权限越高,所能执行的操作更为敏感,更容易引起注意,受到攻击,设置更短的会话有效期延长时间可以提高用户会话的安全性,从而提高在线状态计算的准确性和可靠性。
在一实施例中,所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionID的步骤之后还包括:
所述服务器监测所述账号是否注销或以及所述客户端是否长时间未基于所述账号发起请求;
若监测到所述账号已注销或所述客户端长时间未基于所述账号发起请求,所述服务器将所述session销毁并判定所述用户已经离线。
在本申请实施例中,通过监测所述账号是否注销或以及所述客户端是否长时间未基于所述账号发起请求,当监测到所述账号已经注销以及所述客户端长时间未基于所述账号发起请求时判定所述用户已经离线,这样能够更加准确反映用户的状态。
在一实施例中,所述将所述session销毁的步骤包括:
将所述session删除或将所述session标记为已销毁。
在本申请实施例中,将session删除或将session标记为已销毁都可以实现
session的销毁。而将session删除可以释放服务器的资源,从而减少服务器的负载。
在一实施例中,所述sessionID通过HTTP请求头、Cookie以及URL参数中的任意一种或多种方式传递到所述服务器。
在本申请实施例中,通过HTTP请求头的方式将sessionID传递到服务器,sessionID不会在URL(uniform resource locator)中明文传输,不容易被第三方截获,安全性较高。此外,sessionID作为请求头的一部分,不会增加URL的长度,相对简洁。此外,客户端可以通过在HTTP响应中设置Cookie,然后在后续的请求中将Cookie发送给服务器,服务器可以通过读取Cookie来获取客户端的信息,即可以获取sessionID。通过URL传递sessionID,即将sessionID直接作为URL的一部分,不需要额外配置,可以直接在浏览器地址栏中看到sessionID,方便调试。需要说明的是,当用户在客户端屏蔽Cookie时,sessionID无法传递,这时可以采用HTTP请求头或及URL参数传递sessionID。
参照图2,本发明实施例还提供一种计算机设备,该计算机设备的内部结构可以如图2所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储在线状态计算方法的数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。进一步地,上述计算机设备还可以设置有输入装置和显示屏等。上述计算机程序被处理器执行时以实现在线状态计算方法,包括如下步骤:客户端向服务器发送用户的登录请求;其中,所述登录请求包括账号和密码;所述服务器接收所述账号和所述密码并判断所述账号和所述密码是否匹配;若匹配,则登录成功,且所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionID,将所述sessionID存储在所述服务器的会话存储中并将所述sessionID发送到所述客户端进行存储;在所述账号登录成功后,基于所述账号,所述客户端每次向所述服务器发送请求时,所述客户端将所述请求和所述sessionID一起发送给所述服务器;
所述服务器接收到所述请求后,根据所述sessionID查询对应的session信息;
所述服务器根据所述session信息判断所述session是否过期;若过期,则判定所述用户已经离线;若没有过期,则判定所述用户仍然在线。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现在线状态计算方法,包括如下步骤:客户端向服务器发送用户的登录请求;其中,所述登录请求包括账号和密码;所述服务器接收所述账号和所述密码并判断所述账号和所述密码是否匹配;
若匹配,则登录成功,且所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionID,将所述sessionID存储在所述服务器的会话存储中并将所述sessionID发送到所述客户端进行存储;在所述账号登录成功后,基于所述账号,所述客户端每次向所述服务器发送请求时,所述客户端将所述请求和所述sessionID一起发送给所述服务器;所述服务器接收到所述请求后,根据所述sessionID查询对应的session信息;所述服务器根据所述session信息判断所述session是否过期;若过期,则判定所述用户已经离线;若没有过期,则判定所述用户仍然在线。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种在线状态计算方法,其特征在于,所述方法包括:
客户端向服务器发送用户的登录请求;其中,所述登录请求包括账号和密码;
所述服务器接收所述账号和所述密码并判断所述账号和所述密码是否匹配;
若匹配,则登录成功,且所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionID,将所述sessionID存储在所述服务器的会话存储中并将所述sessionID发送到所述客户端进行存储;
在所述账号登录成功后,基于所述账号,所述客户端每次向所述服务器发送请求时,所述客户端将所述请求和所述sessionID一起发送给所述服务器;
所述服务器接收到所述请求后,根据所述sessionID查询对应的session信息;
所述服务器根据所述session信息判断所述session是否过期;
若过期,则判定所述用户已经离线;
若没有过期,则判定所述用户仍然在线。
2.根据权利要求1所述的在线状态计算方法,其特征在于,所述采用加密算法生成一个唯一的sessionID的步骤包括:
采用随机数生成器生成一个随机的种子值;
将所述种子值、所述账号以及时间戳作为输入传递给加密算法进行哈希运算生成一个唯一的sessionID。
3.根据权利要求1所述的在线状态计算方法,其特征在于,所述session信息包括session的过期时间,所述服务器根据所述session信息判断所述session是否过期的步骤包括:
当所述服务器接收到所述请求后,获取当前时间以及session的过期时间;
所述服务器比较所述当前时间和所述session的过期时间;
若所述当前时间晚于或等于所述session的过期时间,则判定所述session过期;
若所述当前时间早于所述session的过期时间,则判定所述session未过期。
4.根据权利要求3所述的在线状态计算方法,其特征在于,所述判定所述session未过期的步骤之后,还包括:
所述服务器获取所述session的有效期延长时间;
所述服务器利用所述session的有效期延长时间更新所述session的过期时间。
5.根据权利要求4所述的在线状态计算方法,其特征在于,所述服务器获取所述session的有效期延长时间的步骤包括:所述服务器获取所述登录请求中携带的账号;
所述服务器在数据库中搜索出所述账号的级别;其中,所述数据库中预先存储有各账号的级别;
所述服务器根据账号级别与session的有效期延长时间的对应关系确定所述账号对应的session的有效期延长时间;其中,账号级别越高,会话有效期延长时间越短。
6.根据权利要求1所述的在线状态计算方法,其特征在于,所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionID的步骤之后还包括:
所述服务器监测所述账号是否注销或以及所述客户端是否长时间未基于所述账号发起请求;
若监测到所述账号已注销或所述客户端长时间未基于所述账号发起请求,所述服务器将所述session销毁并判定所述用户已经离线。
7.根据权利要求6所述的在线状态计算方法,其特征在于,所述将所述session销毁的步骤包括:
将所述session删除或将所述session标记为已销毁。
8.根据权利要求1所述的在线状态计算方法,其特征在于,所述sessionID通过HTTP请求头、Cookie以及URL参数中的任意一种或多种方式传递到所述服务器。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8中任一项所述的在线状态计算方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的在线状态计算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311410204.8A CN117155993B (zh) | 2023-10-27 | 2023-10-27 | 在线状态计算方法、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311410204.8A CN117155993B (zh) | 2023-10-27 | 2023-10-27 | 在线状态计算方法、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117155993A true CN117155993A (zh) | 2023-12-01 |
CN117155993B CN117155993B (zh) | 2024-01-26 |
Family
ID=88910398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311410204.8A Active CN117155993B (zh) | 2023-10-27 | 2023-10-27 | 在线状态计算方法、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117155993B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475630A (zh) * | 2012-06-08 | 2013-12-25 | 深圳中兴网信科技有限公司 | 一种会话保存的方法和装置 |
CN106534158A (zh) * | 2016-11-29 | 2017-03-22 | 努比亚技术有限公司 | 账号登录控制装置及方法 |
CN108306928A (zh) * | 2017-12-22 | 2018-07-20 | 努比亚技术有限公司 | session管理方法、web服务器及计算机可读存储介质 |
US20180219851A1 (en) * | 2016-04-25 | 2018-08-02 | eStorm Co., LTD | Method and system for authentication |
CN108632234A (zh) * | 2017-08-28 | 2018-10-09 | 北京视联动力国际信息技术有限公司 | 一种用户登录方法和装置 |
CN110298162A (zh) * | 2019-05-22 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 应用程序客户端登录方法、装置、计算机设备及存储介质 |
CN112861092A (zh) * | 2021-03-10 | 2021-05-28 | 上海昊沧***控制技术有限责任公司 | 基于jwt认证应用实现单终端登录限制的方法及*** |
CN112968963A (zh) * | 2021-02-23 | 2021-06-15 | 上海昊沧***控制技术有限责任公司 | 基于WebSocket进行用户强制实时下线的方法 |
-
2023
- 2023-10-27 CN CN202311410204.8A patent/CN117155993B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475630A (zh) * | 2012-06-08 | 2013-12-25 | 深圳中兴网信科技有限公司 | 一种会话保存的方法和装置 |
US20180219851A1 (en) * | 2016-04-25 | 2018-08-02 | eStorm Co., LTD | Method and system for authentication |
CN106534158A (zh) * | 2016-11-29 | 2017-03-22 | 努比亚技术有限公司 | 账号登录控制装置及方法 |
CN108632234A (zh) * | 2017-08-28 | 2018-10-09 | 北京视联动力国际信息技术有限公司 | 一种用户登录方法和装置 |
CN108306928A (zh) * | 2017-12-22 | 2018-07-20 | 努比亚技术有限公司 | session管理方法、web服务器及计算机可读存储介质 |
CN110298162A (zh) * | 2019-05-22 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 应用程序客户端登录方法、装置、计算机设备及存储介质 |
CN112968963A (zh) * | 2021-02-23 | 2021-06-15 | 上海昊沧***控制技术有限责任公司 | 基于WebSocket进行用户强制实时下线的方法 |
CN112861092A (zh) * | 2021-03-10 | 2021-05-28 | 上海昊沧***控制技术有限责任公司 | 基于jwt认证应用实现单终端登录限制的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN117155993B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781482B (zh) | 登陆方法、装置、计算机设备和存储介质 | |
CN103023918B (zh) | 为多个网络服务统一提供登录的方法、***和装置 | |
US7353282B2 (en) | Methods and systems for sharing a network resource with a user without current access | |
US8667294B2 (en) | Apparatus and method for preventing falsification of client screen | |
US7251827B1 (en) | In-line sign in | |
CN110213223B (zh) | 业务管理方法、装置、***、计算机设备和存储介质 | |
CN104954330B (zh) | 一种对数据资源进行访问的方法、装置和*** | |
US20090007250A1 (en) | Client authentication distributor | |
US20050015601A1 (en) | Methods, systems, and media to authenticate a user | |
CN108365958B (zh) | 账号登录的验证方法、装置、计算机设备和存储介质 | |
US20100077467A1 (en) | Authentication service for seamless application operation | |
CN111241555B (zh) | 模拟用户登录的访问方法、装置、计算机设备和存储介质 | |
EP2232401A1 (en) | System, method and program product for consolidated authentication | |
US8365264B2 (en) | Protecting password from attack | |
CN106452774B (zh) | 基于单点登录协议进行访问权限控制的方法和装置 | |
CN112118238B (zh) | 认证登录的方法、装置、***、设备及存储介质 | |
CN101902329A (zh) | 用于单点登录的方法和装置 | |
CN111294337B (zh) | 一种基于令牌的鉴权方法及装置 | |
CN112491890A (zh) | 一种访问方法及装置 | |
CN113626840A (zh) | 接口认证方法、装置、计算机设备和存储介质 | |
CN112929388B (zh) | 网络身份跨设备应用快速认证方法和***、用户代理设备 | |
US8381269B2 (en) | System architecture and method for secure web browsing using public computers | |
US11075922B2 (en) | Decentralized method of tracking user login status | |
KR101190060B1 (ko) | 아이덴티티 데이터 관리 장치 및 방법 | |
CN117155993B (zh) | 在线状态计算方法、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |