CN114301678B - 一种数据访问方法及装置、电子设备、存储介质 - Google Patents
一种数据访问方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114301678B CN114301678B CN202111629265.4A CN202111629265A CN114301678B CN 114301678 B CN114301678 B CN 114301678B CN 202111629265 A CN202111629265 A CN 202111629265A CN 114301678 B CN114301678 B CN 114301678B
- Authority
- CN
- China
- Prior art keywords
- time
- jwt token
- client
- token
- jwt
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 230000004044 response Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000007774 longterm Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请的实施例揭示了一种数据访问方法及装置、电子设备、计算机可读存储介质。该方法包括:接收客户端发送的数据访问请求,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以及记录接收数据访问请求的时间,并将所记录的时间作为访问时间;根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件;若确定第一JWT令牌满足续签条件,则获取与数据访问请求对应的目标数据,并发送目标数据至客户端。本申请的实施例中客户端无须每次访问服务端都刷新JWT令牌,有助于提高运行效率。
Description
技术领域
本申请涉及网络安全控制技术领域,具体涉及一种数据访问方法、数据访问装置、电子设备以及计算机可读存储介质。
背景技术
JWT(JSON Web Token,JSON Web令牌)作为一种无状态认证标识已被广泛的应用于各种分布式应用中。JWT令牌用于认证用户的有效性和合法性,主要通过服务端拦截客户端的请求,从请求中提取。JWT令牌含有的过期时间和签名,从而进行有效性和合法性的校验。但是这种认证方式,存在JWT令牌的有效期问题,例如JWT令牌设置了固定的过期时间,用户在使用的过程中,若JWT令牌过期了,客户端会被强制回到登录页,极大降低了用户体验。
发明内容
为解决上述技术问题,本申请的实施例提供了一种数据访问方法及装置、电子设备、计算机可读存储介质。
根据本申请实施例的一个方面,提供了一种数据访问方法,包括:接收客户端发送的数据访问请求,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以及记录接收数据访问请求的时间,并将所记录的时间作为访问时间;根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件;若确定第一JWT令牌满足续签条件,则获取与数据访问请求对应的目标数据,并发送目标数据至客户端。
根据本申请实施例的一个方面,提供了一种数据访问方法,包括:
发送数据访问请求至服务端,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以使服务端根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件;接收服务端发送的与数据访问请求对应的目标数据,目标数据是服务端在确定第一JWT令牌满足续签条件时获取的。
根据本申请实施例的一个方面,提供了一种数据访问装置,配置于服务端,包括:第一接收模块,配置为接收客户端发送的数据访问请求,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以及记录接收数据访问请求的时间,并将所记录的时间作为访问时间;确定模块,配置为根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件;第一发送模块,配置为若确定第一JWT令牌满足续签条件,则获取与数据访问请求对应的目标数据,并发送目标数据至客户端。
根据本申请实施例的一个方面,提供了一种数据访问装置,配置于客户端,包括:第二发送模块,配置为发送数据访问请求至服务端,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以使服务端根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件;第二接收模块,配置为接收服务端发送的与数据访问请求对应的目标数据,目标数据是服务端在确定第一JWT令牌满足续签条件时获取的。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的数据访问方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的数据访问方法。
在本申请的实施例所提供的技术方案中,服务端通过访问时间、偏移时间以及过期时间之间的关系确定第一JWT令牌是否满足续签条件,如果满足续签条件,此时则可以将与数据访问请求对应的目标数据发送至客户端,这样客户端无须当过期时间一到就必须刷新第一JWT令牌,并基于刷新后的第一JWT令牌获取所需访问的数据。也即,本申请设置了一个新的时间(即偏移时间),进而服务端可以通过访问时间、偏移时间以及过期时间确定第一JWT令牌是否满足续签条件,而不是简单地比较访问时间与过期时间,从而当满足续签条件时,客户端就可以在不用刷新第一JWT令牌的情况下即可获取到所需访问的数据,降低了客户端针对第一JWT令牌的刷新频率,提升了用户的使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请的一示例性实施例示出的数据访问系统框架示意图;
图2是本申请的一示例性实施例示出的一种数据访问方法的流程图;
图3是图2所示实施例中的步骤S120在一示例性实施例中的流程图;
图4是图2所示实施例中的步骤S130在一示例性实施例中的流程图;
图5是本申请的另一示例性实施例示出的一种数据访问方法的流程图;
图6是本申请的另一示例性实施例示出的一种数据访问方法的流程图;
图7是本申请的另一示例性实施例示出的一种数据访问方法的流程图;
图8是本申请的另一示例性实施例示出的一种数据访问方法的流程图;
图9是本申请的另一示例性实施例示出的数据访问装置的框图;
图10是本申请的一示例性实施例示出的数据访问装置的框图;
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的方案涉及的方案基于JWT的用户认证技术。可以理解的是,JWT技术是一种基于令牌的鉴权机制,一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。在身份验证中,当客户端使用其凭据成功登录时,服务端将生成JWT令牌返回给客户端,客户端请求访问受保护的数据资源时,应在请求中携带服务端的返回的JWT令牌。JWT令牌可直接被用于认证,也可被加密。JWT令牌无需保存在服务器,不占用服务器内存开销,且可以在JWT令牌中自定义丰富的内容,易扩展。
相关技术中,基于JWT实现数据访问的流程包括:客户端向服务端发送登录认证信息,服务端验证通过会生成带有签名的JWT令牌并发送给客户端,客户端将JWT令牌保存,并在以后的请求中将JWT令牌连同数请求内容一起发送给服务端,服务端收到请求后通过JWT令牌来确认客户端身份。这种用户认证方案利用了JWT无状态的特性可以有效防止CSRF攻击,同时也解决了状态同步的问题。但基于JWT进行用户认证实现数据访问的过程也存在以下缺点:由于JWT是无状态的,服务端无法让JWT令牌失效;JWT令牌一旦发布其有效期即固定,一旦JWT令牌过期,则客户端需要重新输入账号和密码进行重新登录,若用户持续性访问服务端的数据,在用户访问服务端数据的期间,遇到JWT令牌过期会导致访问中断,这大大降低了用户的体验感,因此JWT的应用场景不适合长期身份认证。
因此,在需要进行长期身份认证的场景下,本申请实施例提出一种数据访问系统,该数据访问系统包括客户端和服务端,其中:
服务端接收客户端发送的数据访问请求,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以及记录接收数据访问请求的时间,并将所记录的时间作为访问时间;
服务端根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件;若确定第一JWT令牌满足续签条件,则获取与数据访问请求对应的目标数据,并发送目标数据至客户端。
也即,在需要进行长期身份认证的场景下,客户端和服务端进行交互;具体地,客户端将携带有JWT令牌的数据访问请求传输至服务端,服务端接收数据访问请求,并将接收数据访问请求的时间作为访问时间,根据访问时间、JWT令牌的过期时间以及JWT令牌的偏移时间之间的关系,确定JWT令牌是否满足续签条件;若确定JWT令牌满足续签条件,则执行自动续签动作生成新的JWT令牌,新的JWT令牌中的过期时间根据访问时间延长,获取与数据访问请求对应的目标数据,将目标数据和新的JWT令牌发送至客户端,客户下一次访问服务端时,在数据访问请求中携带新的JWT令牌。
图1是本申请的一示例性实施例示出的数据访问系统框架示意图,如图1所示,从图1所示的数据访问系统框架中可以看出,其中:服务端具有逻辑计算,服务端接收到客户端发送的携带有JWT令牌的数据访问请求后,获取JWT令牌中的过期时间和偏移时间,根据访问时间、过期时间以及偏移时间之间的关系进行逻辑计算,判断JWT令牌是否满足续签条件,若满足续签条件,即意味着JWT令牌未过期,实现JWT令牌的自动续签,此时服务端直接获取目标数据发送给客户端。
其中,图1所示的客户端可以是智能手机、车载电脑、平板电脑、笔记本电脑或者可穿戴设备等任意支持数据访问的终端设备,但并不限于此。图1所示的服务端是服务器,例如可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,在此也不进行限制。客户端可以通过3G(第三代的移动信息技术)、4G(第四代的移动信息技术)、5G(第五代的移动信息技术)等无线网络与服务端进行通信,本处也不对此进行限制。
基于图1的应用场景,在采用了本申请实施例的技术方案之后,服务端会判断客户端发送的JWT令牌是否满足续签条件,在满足续签时直接获取目标数据,在JWT令牌的有效期内,用户可以一直使用该JWT令牌访问数据,无需频繁登录,能够有效提升用户体验,因此本申请实施例的技术方案适用于需要进行长期身份认证的场景。
以下对本申请实施例的技术方案的各种实现细节进行详细阐述:
图2是本申请的一示例性实施例示出的一种数据访问方法的流程图。如图2所示,该方法可以由图1所示数据访问系统框架中的服务端执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
如图2所示,数据访问方法至少包括步骤S110至步骤S130,详细介绍如下:
步骤S110,接收客户端发送的数据访问请求,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以及记录接收数据访问请求的时间,并将所记录的时间作为访问时间。
应当理解的是,本申请实施例中的数据访问请求可以是客户端向服务端发送的登录请求,登录请求用于访问服务端的登录接口,以便从服务端获取访问令牌等数据以实现登录;数据访问请求也可以是客户端向服务端发送的功能调用请求,功能调用请求用于访问服务端的功能接口,以便从服务端调用相应的功能数据。
本申请实施例中的第一JWT令牌为客户端用于访问服务端的访问令牌,当客户端请求登录时,由服务端生成第一JWT令牌并发送给客户端。服务端通过第一JWT令牌对客户端的身份的合法性和有效性进行验证,若身份验证通过,则允许客户端访问数据访问请求中的相应数据;若身份验证未通过,则拒绝客户端的数据访问请求。
本申请实施例中的第一JWT令牌中包括偏移时间和过期时间,偏移时间和过期时间由服务端根据获取第一JWT令牌时的访问时间确定。其中,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内。
举例说明,若客户端登录的登录时间是8点,第一JWT令牌中的过期时间设置为9点,则JWT认证标识中的偏移时间可以是客户端登录的登录时间和过期时间之间的任何一个时间点,例如,偏移时间可以是8点30分,也可以是8点45分。
在本申请的一个实施例中,服务端在生成第一JWT令牌的同时生成一个用于刷新该第一JWT令牌的第一刷新令牌,并将该第一刷新令牌和第一JWT令牌一起发送给客户端,以便于客户端缓存接收到的第一刷新令牌和第一JWT令牌。在此基础上,客户端向服务端发送数据获取请求时,数据获取请求中携带有第一JWT令牌和第一刷新令牌。
在本申请的一个实施例中,服务端在生成第一JWT令牌后,向客户端发送第一JWT令牌的同时,将客户端登录的登录时间发送给客户端,以便于客户端缓存接收到的第一JWT令牌和登录时间。在此基础上,客户端向服务端发送数据获取请求时,数据获取请求中携带有第一JWT令牌和登录时间。
在本申请的一个实施例中,服务端在生成第一JWT令牌的同时生成一个用于刷新该第一JWT令牌的第一刷新令牌,向客户端发送第一JWT令牌和第一刷新令牌的同时,将客户端登录的登录时间发送给客户端,以便于客户端存储接收到的第一JWT令牌、第一刷新令牌和登录时间。在此基础上,客户端向服务端发送数据获取请求时,数据获取请求中携带有第一JWT令牌、第一刷新令牌和登录时间。
步骤S120,根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件。
在本申请的一个实施例中,请参阅图3,步骤S120中根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件的过程,可以包括步骤S1201至步骤S1202,详细介绍如下:
步骤S1201,根据偏移时间和过期时间,确定续签的时间区间。
应理解的是,本申请实施例中的续签的时间区间的最小值为偏移时间,续签的时间区间的最大值为过期时间,也即续签的时间区间为偏移时间和过期时间之间的时间区间。
举例说明,若客户端登录的登录时间是8点,第一JWT令牌中的过期时间设置为9点,第一JWT令牌中的偏移时间设置为8点30分,则可以确定续签的时间区间为8点30分-9点。
步骤S1202,若访问时间位于续签的时间区间内,则确定第一JWT令牌满足续签条件。
举例说明,若客户端登录的登录时间是8点,第一JWT令牌中的过期时间设置为9点,第一JWT令牌中的偏移时间设置为8点30分,则可以确定续签的时间区间为8点30分-9点。在此基础上,若访问时间在8点30分-9点之间,例如,访问时间为8点32分,则可以确定第一JWT令牌满足续签条件。
步骤S130,若确定第一JWT令牌满足续签条件,则获取与数据访问请求对应的目标数据,并发送目标数据至客户端。
在本申请的一个实施例中,请参阅图4,步骤S130中在获取与数据访问请求对应的目标数据之前,方法还包括步骤S1301至步骤S1302,详细介绍如下:
步骤S1301,生成与第一JWT令牌匹配的第二JWT令牌,第二JWT令牌中含有的过期时间是基于访问时间所确定的。
本申请实施例中的第二JWT令牌与第一JWT令牌的结构相同,都包括偏移时间和过期时间,二者的区别在于:第二JWT令牌包含的偏移时间由访问时间确定,第一JWT令牌的偏移时间由最近一次的访问时间确定;第二JWT令牌包含的过期时间表征第二JWT令牌的过期时间,第一JWT令牌包含的过期时间表征第一JWT令牌的过期时间;第二JWT令牌的过期时间由访问时间确定,第一JWT令牌的过期时间由最近一次的访问时间确定。
举例说明,若客户端登录的登录时间是8点,第一JWT令牌中的过期时间设置为9点,第一JWT令牌中的偏移时间设置为8点30分,则可以确定续签的时间区间为8点30分-9点,若访问时间在8点30分-9点之间,例如,访问时间为8点32分,则可以确定第一JWT令牌满足续签条件。在此基础上,执行自动续签动作,即生成与第一JWT令牌匹配的第二JWT令牌,第二JWT令牌中的偏移时间根据访问时间确定为9点02分,第二JWT令牌中的过期时间根据访问时间确定为9点32分。
在本申请实施例中,在生成与第一JWT令牌匹配的第二JWT令牌的同时,还生成一个用于刷新第二JWT令牌的第二刷新令牌,该第二刷新令牌的过期时间是第二JWT令牌的过期时间的2-3倍。
在本申请实施例中,在生成与第一JWT令牌匹配的第二JWT令牌的同时,还生成一个用于刷新客户端缓存内容的刷新标识。
在本申请实施例中,在生成与第一JWT令牌匹配的第二JWT令牌的同时,还生成一个便于用户查看数据访问情况的第二状态码。
应理解的是,在生成与第一JWT令牌匹配的第二JWT令牌的同时,可以生成第二刷新令牌、刷新标识和第二状态码中的任意一种或多种的组合,此处不对其进行限制。
示例性,第二状态码为服务端与客户端通过通信协议预设的字符串,可以通过客户端查看第二状态码从而确定数据访问的结果。例如,第二状态码代表客户端从服务端成功的访问数据,当服务端获取与数据访问请求对应的目标数据并将目标数据发送至客户端后,服务端生成第二状态码发送给客户端,客户端根据接收到的第二状态码可以确定数据访问成功。
示例性,第二状态码可以是字符串200。第二状态码也可以是其他表征访问状态的标识,此处不对其进行限制。
步骤S1302,发送第二JWT令牌与访问时间至客户端,以使客户端用第二JWT令牌替换缓存中的第一JWT令牌,并用访问时间替换所缓存的访问时间。
在本申请的一个实施例中,服务端在生成与第一JWT令牌匹配的第二JWT令牌的同时,还生成一个用于刷新第二JWT令牌的第二刷新令牌。在此基础上,服务端在发送第二JWT令牌与访问时间至客户端的同时,还向客户端发送用于刷新第二JWT令牌的第二刷新令牌。客户接收到第二JWT令牌、访问时间和第二刷新令牌时,用接收到的第二JWT令牌替换所缓存的第一JWT令牌,用接收到的访问时间替换所缓存的访问时间,用接收到的第二刷新令牌替换缓存的第一刷新令牌。
示例性,服务端向客户端发送第二JWT令牌、访问时间和第二刷新令牌时,可以根据HTTPS通信协议向客户端发送携带第二JWT令牌、访问时间和第二刷新令牌的响应。例如,第二JWT令牌和第二刷新令牌包含于响应的响应体中,访问时间包含于响应的响应头中,再将响应发送给客户端。
在本申请的一个实施例中,服务端在发送第二JWT令牌、访问时间和用于刷新第二JWT令牌的第二刷新令牌至客户端的同时,还向客户端发送刷新标识,客户端接收到第二JWT令牌、访问时间、第二刷新令牌和刷新标识后,根据刷新标识对客户端的缓存内容进行刷新,包括:用接收到的第二JWT令牌替换所缓存的第一JWT令牌,用接收到的访问时间替换所缓存的访问时间,用接收到的第二刷新令牌替换缓存的第一刷新令牌。
在本申请的一个实施例中,在发送第二JWT令牌、第二刷新令牌、访问时间和刷新标识至客户端的同时,还向客户端发送第二状态码,客户端接收到第二JWT令牌、第二刷新令牌、访问时间和刷新标识后,根据刷新标识对客户端的缓存内容进行刷新,包括:用接收到的第二JWT令牌替换所缓存的第一JWT令牌,用接收到的访问时间替换所缓存的访问时间,用接收到的第二刷新令牌替换缓存的第一刷新令牌,并将第二状态码进行显示以便用户查看数据访问的结果。
举例说明,若客户端发送的数据访问请求中携带有第一JWT令牌、第一刷新令牌和客户端登录的登录时间客户端登录的登录时间是8点,第一JWT令牌中的过期时间设置为9点,第一JWT令牌中的偏移时间设置为8点30分,则可以确定续签的时间区间为8点30分-9点,若访问时间在8点30分-9点之间,例如,访问时间为8点32分,则可以确定第一JWT令牌满足续签条件,执行自动续签动作,服务端根据第一刷新令牌生成与第一JWT令牌匹配的第二JWT令牌,第二JWT令牌中的偏移时间根据访问时间确定为9点02分,第二JWT令牌中的过期时间根据访问时间确定为9点32分,在生成与第一JWT令牌匹配的第二JWT令牌的同时,生成第二刷新令牌。将第二JWT令牌和第二刷新令牌放入响应的响应体中,在响应的响应头中插入访问时间8点32分,将响应发送给客户端,同时向客户端发送第二状态码和刷新标识。客户端接收响应后,根据刷新标识对客户端的缓存内容进行刷新,将客户端缓存中的第一JWT令牌替换为第二JWT令牌、将客户端缓存中的第一刷新令牌替换为接收到的第二刷新令牌、将客户端缓存中的客户端登录的登录时间8点替换为接收到的访问时间8点32分。客户端下一次访问服务端时,在请求中携带第二JWT令牌、第二刷新令牌和访问时间8点32分。客户端接收响应后,将响应中的第二状态码进行显示以便用户知晓功能调用的状态结果。
由上可知,本实施例提供的方法设置了一个偏移时间,进而服务端可以通过访问时间、偏移时间以及过期时间之间的关系确定第一JWT令牌是否满足续签条件,根据偏移时间和过期时间确定续签的时间区间,第一JWT令牌的续签条件为访问时间位于续签的时间区间内,若满足续签条件,则进行第一JWT令牌的自动续签,生成第二JWT令牌发送给客户端,客户端将之前所缓存的第一JWT令牌替换为第二JWT令牌。客户端在下一次访问服务端时,用第二JWT令牌作为访问令牌访问服务端。也即,客户端无须每次访问服务端都刷新JWT令牌,有助于提高运行效率。本申请实施例的方法在减少编程复杂度的同时,自动延长JWT令牌的到期时间,从而便于延长用户通过客户端访问服务端的访问时间,有助于提升用户体验,实现用户安全和用户体验间的平衡。此外,本申请实施例的方法不依赖第三方组件(例如第三方缓存中间件)和数据库,直接将JWT令牌、刷新令牌、访问时间存储在客户端,通过客户端与服务端之间的会话实现JWT令牌、刷新令牌、访问时间等关键信息的交互,由服务端执行JWT令牌是否满足续签条件的判断,易编程、易维护,有助于降低后期的运维成本。
在另一个示例性实施例中,如图5所示,在图2所示的实施例的基础上,方法还可以包括步骤S510-S530,详细介绍如下:
步骤S510,若访问时间未位于续签的时间区间内,且访问时间超过过期时间,则判断访问时间与最近一次的访问时间之间的差值是否超过预设时间差阈值。
步骤S520,若未超过,则确定第一JWT令牌满足续签条件,并执行生成与第一JWT令牌匹配的第二JWT令牌的步骤。
步骤S530,若超过,则确定第一JWT令牌已过期,则发送重新登录请求至客户端,以使客户端根据重新登录请求进行重新登录。
在本申请实施例中,在服务端发送重新登录请求至客户端时,向客户端第一状态码,以使客户端根据第一状态码回到登录界面进行重新登录。
第一状态码为服务端与客户端通过通信协议预设的字符串,第一状态码表征服务端拒绝客户端的数据访问请求。客户端中缓存的第一JWT令牌过期后,无法通过第一JWT令牌从服务端的访问数据。服务端确定第一JWT令牌已过期后,向客户端发送重新登录请求和第一状态码,客户端接收到重新登录请求和第一状态码后,根据第一状态码返回登录界面,并根据重新登录请求进行重新登录,以便重新获取JWT令牌。
示例性,第一状态码可以是字符串401。第一状态码也可以是其他表征服务端拒绝客户端的数据访问请求的标识,此处不对其进行限制。
举例说明,若客户端上一次访问服务端的访问时间是8点29分,客户端上一次访问时,向服务端发送的数据访问请求中携带有第一JWT令牌、第一刷新令牌和登录时间,其中,第一JWT令牌中的过期时间为9点,第一JWT令牌中的偏移时间为8点30分,则可以确定续签的时间区间为8点30分-9点,访问时间为8点29分时不满足续签条件,此时只需要对客户端缓存中的访问时间更新为8点29分,客户端中缓存的第一JWT令牌和第一刷新令牌保持不变。在此基础上,客户端再次访问服务端,客户端发送的数据访问请求中携带有第一JWT令牌、第一刷新令牌和访问时间8点29分,其中,数据访问请求中携带的访问时间8点29分即是最近一次的访问时间,第一JWT令牌中的过期时间为9点,第一JWT令牌中的偏移时间为8点30分,则可以确定续签的时间区间为8点30分-9点。若访问时间在9点之后,例如,访问时间为9点01分,此时判断访问时间与最近一次的访问时间之间的差值是否超过预设时间差阈值,若预设时间差阈值为1小时,则确定访问时间与最近一次的访问时间之间的差值未超过预设时间差阈值,第一JWT令牌满足续签条件,服务端根据第一刷新令牌生成与第一JWT令牌匹配的第二JWT令牌,第二JWT令牌中的偏移时间根据访问时间9点01分确定为9点31分,第二JWT令牌中的过期时间根据访问时间确定为10点01分,在生成与第一JWT令牌匹配的第二JWT令牌的同时,生成第二刷新令牌。将第二JWT令牌和第二刷新令牌放入响应的响应体中,在响应的响应头中插入访问时间9点01分,将响应发送给客户端,同时向客户端发送第二状态码和刷新标识。客户端接收响应后,根据刷新标识对客户端的缓存内容进行刷新,将客户端缓存中的第一JWT令牌替换为第二JWT令牌、将客户端缓存中的第一刷新令牌替换为接收到的第二刷新令牌、将客户端缓存中的最近一次的访问时间8点29分替换为接收到的访问时间9点01分。客户端下一次访问服务端时,在请求中携带第二JWT令牌、第二刷新令牌和访问时间9点01分。客户端接收响应后,将响应中的第二状态码进行显示以便用户知晓功能调用的状态结果。
举例说明,若客户端发送的数据访问请求中携带有第一JWT令牌、第一刷新令牌和最近一次的访问时间,其中,最近一次的访问时间是8点29分,第一JWT令牌中的过期时间设置为9点,第一JWT令牌中的偏移时间设置为8点30分,则可以确定续签的时间区间为8点30分-9点。预设时间差阈值为1小时。若访问时间在9点之后,例如,访问时间为9点30分,此时访问时间与最近一次的访问时间之间的差值超过预设时间差阈值,则确定第一JWT令牌已过期,向客户端发送重新登录请求和第一状态码,客户端接收到重新登录请求和第一状态码后,根据第一状态码返回登录界面,并根据重新登录请求进行重新登录,以便重新获取新的JWT令牌。
由上可知,本实施例提供的方法通过预设时间差阈值的方式,只有当访问时间与最近一次的访问时间之间的差值超过预设时间差阈值时,客户端才需要重新登录,客户端无需频繁登录,有助于提升用户的体验感。
在另一个示例性实施例中,在图2所示的实施例的基础上,方法还可以包括以下步骤,详细介绍如下:
若访问时间未位于续签的时间区间内,且访问时间未超过偏移时间,则执行获取与数据访问请求对应的目标数据的步骤。
在本申请实施例中,在执行获取与数据访问请求对应的目标数据的步骤之后,还包括以下步骤,详细介绍如下:
将访问时间和第二状态码发送给客户端,客户端根据访问时间更新客户端中存储的访问时间,并将第二状态码进行显示以便用户查看数据访问的结果。
举例说明,若客户端发送的数据访问请求中携带有第一JWT令牌、第一刷新令牌和客户端登录的登录时间,其中,客户端登录的登录时间是8点,第一JWT令牌中的过期时间设置为9点,第一JWT令牌中的偏移时间设置为8点30分,则可以确定续签的时间区间为8点30分-9点,若访问时间在8点-8点30分之间,例如,访问时间为8点15分,则可以确定JWT认证标识未过期,第一JWT令牌不满足续签条件,此时服务端获取与数据访问请求对应的目标数据后,发送目标数据、访问时间8点15分和第二状态码至客户端。客户端用接收的访问时间8点15分替换所缓存的登录时间8点,客户端将第二状态码进行显示以便用户知晓功能调用的状态结果。由于访问时间小于8点30分,不满足续签条件,此时客户端中存储的第一JWT令牌仍然是客户端在8点登录时从服务端获取的第一JWT令牌,第一JWT令牌中的过期时间仍然是9点,第一JWT令牌中的前置偏移时间仍然是8点30分,客户端中存储的第一刷新令牌仍然是客户端在8点登录时从服务端获取的第一刷新令牌。客户端下一次访问服务端时,在请求中携带第一JWT令牌、第一刷新令牌和最后访问时间8点15分。
由上可知,若访问时间不满足续签条件,且访问时间未超过偏移时间,则说明第一JWT令牌未过期,此时无需获取新的JWT令牌,只需向客户端发送访问时间,客户端将之前所缓存的访问时间替换为接收到的访问时间,客户端在下一次访问服务端时,仍用之前缓存的第一JWT令牌作为访问令牌访问服务端。也即客户端无须每次访问服务端都刷新JWT令牌,不仅有助于提高运行效率,还在一定程度上提升了用户体验感。
在另一个示例性实施例中,如图6所示,在图2和图5所示的实施例的基础上,在步骤S110之前,该数据访问方法还包括步骤S610至步骤S620,详细介绍如下:
步骤S610,接收客户端发送的登录信息。
本申请实施例中的登录信息包括用户名和密码,在二者都验证通过时,服务端确定对客户端的身份认证通过。
在本申请实施例中,接收客户端发送的登录信息时,记录接收登录信息的时间,所记录的时间既是客户端登录的登录时间,也是客户端首次访问服务端的访问时间。
步骤S620,若根据登录信息对客户端进行身份认证通过,则生成第一JWT令牌,并发送第一JWT令牌至客户端。
在本申请实施例中,在生成第一JWT令牌的同时,还生成用于刷新第一JWT的第一刷新令牌。在此基础上,在发送第一JWT令牌至客户端时,同时将第一刷新令牌发送至客户端,以便于客户端缓存接收到的第一刷新令牌和第一JWT令牌。
在本申请实施例中,在发送第一JWT令牌至客户端时,同时将客户端登录的登录时间作为访问时间发送至客户端,以便客户端缓存该访问时间。
由上可知,本实施例提供的方法在客户端登录时从服务端获取第一JWT令牌和第一刷新令牌以及客户端登录的登录时间,客户端登录的登录时间为首次访问时间,将该访问时间缓存在客户端中,同时将第一JWT令牌和第一刷新令牌也缓存在客户端中,后续客户端每访问一次服务端,都将客户端中缓存的访问时间替换为最新的访问时间;在后续客户端在访问服务端的过程中,判断第一JWT令牌是否满足续签条件,满足续签条件则生成第二JWT令牌实现自动续签,并将客户端中缓存的第一JWT令牌替换为第二JWT令牌,以此类推,后续客户端每访问一次服务端,均判断客户端中缓存的JWT令牌是否满足续签条件,满足续签条件则生成新的JWT令牌实现自动续签,并将客户端中缓存的JWT令牌替换为新的JWT令牌。
图7是本申请的另一示例性实施例示出的数据访问方法的流程图,该方法可以由图1所示数据访问系统框架中的服务端执行。如图7所示,该方法包括步骤S710至步骤S790,详细介绍如下:
步骤S710,接收客户端发送的数据访问请求,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内。
步骤S720,记录接收数据访问请求的时间,并将所记录的时间作为访问时间。
步骤S730,根据偏移时间和过期时间,确定续签的时间区间,判断访问时间是否位于续签的时间区间内;
步骤S740,若访问时间位于续签的时间区间内,则确定第一JWT令牌满足续签条件,执行自动续签动作,生成与第一JWT令牌匹配的第二JWT令牌,第二JWT令牌中含有的过期时间是基于访问时间所确定的,发送第二JWT令牌与访问时间至客户端,以使客户端用第二JWT令牌替换第一JWT令牌,并用访问时间替换所缓存的访问时间,执行步骤S750;若访问时间未位于续签的时间区间内,则执行步骤S760。
步骤S750,获取与数据访问请求对应的目标数据,并发送目标数据至客户端。
步骤S760,判断访问时间是否超过偏移时间,若访问时间超过偏移时间,则执行步骤S770;若访问时间未超过偏移时间,则执行步骤750。
步骤S770,计算访问时间与最近一次的访问时间之间的差值,执行步骤S780。
步骤S780,判断访问时间与最近一次的访问时间之间的差值是否超过预设时间差阈值;若未超过,则执行步骤S740至步骤S750,也即,确定第一JWT令牌满足续签条件,执行自动续签动作,生成与第一JWT令牌匹配的第二JWT令牌,第二JWT令牌中含有的过期时间是基于访问时间所确定的,发送第二JWT令牌与访问时间至客户端,以使客户端用第二JWT令牌替换第一JWT令牌,并用访问时间替换所缓存的访问时间,最后获取与数据访问请求对应的目标数据,并发送目标数据至客户端;若超过,则执行步骤S790。
步骤S790,确定第一JWT令牌已过期,则发送重新登录请求至客户端,以使客户端根据重新登录请求进行重新登录。
本申请实施例中,通过偏移时间和过期时间确定续签的时间区间,再根据访问时间与续签的时间区间的关系判断第一JWT令牌是否满足续签条件,若满足续签条件,则进行第一JWT令牌的自动续签,生成第二JWT令牌发送给客户端,客户端将之前所缓存的第一JWT令牌替换为第二JWT令牌。客户端在下一次访问服务端时,用第二JWT令牌作为访问令牌访问服务端。也即,客户端无须每次访问服务端都刷新JWT令牌,有助于提高运行效率。本申请实施例的方法在减少编程复杂度的同时,自动延长JWT令牌的到期时间,从而便于延长用户通过客户端访问服务端的访问时间,有助于提升用户体验,实现用户安全和用户体验间的平衡。
图8是本申请的另一示例性实施例示出的一种数据访问方法的流程图。在另一个示例性实施例中,如图8所示,该方法可以由图1所示数据访问系统框架中的客户端执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
如图8所示,数据访问方法可至少包括步骤S810至步骤S820,详细介绍如下:
步骤S810,发送数据访问请求至服务端,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以使服务端根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件。
步骤S820,接收服务端发送的与数据访问请求对应的目标数据,目标数据是服务端在确定第一JWT令牌满足续签条件时获取的。
可选地,步骤S810至步骤S820的具体实施过程可以参照前述实施例的技术方案。
本申请实施例中,客户端在请求访问数据时,在数据访问请求中携带包含过期时间和偏移时间的第一JWT令牌,第一JWT令牌是客户端访问服务端时由服务端返回用于身份认证的数据,以便服务端根据访问时间、过期时间以及偏移时间之间的关系确定第一JWT令牌是否满足续签条件,若满足续签条件,则服务端会获取与数据访问请求对应的目标数据发送给客户端,客户端接收服务端发送的与数据访问请求对应的目标数据。
图9是本申请的一示例性实施例示出的数据访问装置的框图。该装置可以应用于图1所示的实施环境,并具体配置在服务端中。该装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图9所示,该示例性的数据访问装置包括:
第一接收模块901,配置为接收客户端发送的数据访问请求,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以及记录接收数据访问请求的时间,并将所记录的时间作为访问时间;
确定模块902,配置为根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件;
第一发送模块903,配置为若确定第一JWT令牌满足续签条件,则获取与数据访问请求对应的目标数据,并发送目标数据至客户端。
在本申请的一个实施例中,确定模块902还包括:
续签时间区间确定单元,配置为根据偏移时间和过期时间,确定续签的时间区间。
确定单元,配置为若访问时间位于续签的时间区间内,则确定第一JWT令牌满足续签条件。
在本申请的一个实施例中,第一发送模块903还包括:
第二JWT令牌生成单元,配置为生成与第一JWT令牌匹配的第二JWT令牌,第二JWT令牌中含有的过期时间是基于访问时间所确定的。
发送单元,配置为发送第二JWT令牌与访问时间至客户端,以使客户端用第二JWT令牌替换第一JWT令牌,并用访问时间替换所缓存的访问时间。
在本申请的一个实施例中,确定模块902还包括:
判断单元,配置为若访问时间未位于续签的时间区间内,且访问时间超过过期时间,则判断访问时间与最近一次的访问时间之间的差值是否超过预设时间差阈值;
第一执行单元,配置为若访问时间与最近一次的访问时间之间的差值未超过预设时间差阈值,则确定第一JWT令牌满足续签条件,并执行生成与第一JWT令牌匹配的第二JWT令牌的步骤。
在本申请的一个实施例中,确定模块902还包括:
第二执行单元,配置为若访问时间未位于续签的时间区间内,且访问时间未超过偏移时间,则执行获取与数据访问请求对应的目标数据的步骤。
在本申请的一个实施例中,第一接收模块901还包括:
接收单元,配置为接收客户端发送的登录信息;
第一JWT令牌生成单元,配置为若根据登录信息对客户端进行身份认证通过,则生成第一JWT令牌,并发送第一JWT令牌至客户端。
需要说明的是,上述实施例所提供的数据访问装置与上述实施例所提供的数据访问方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的数据访问装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
图10是本申请的另一示例性实施例示出的数据访问装置的框图。该装置可以应用于图1所示的实施环境,并具体配置在客户端中。该装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图10所示,该示例性的数据访问装置包括:
第二发送模块1010,配置为发送数据访问请求至服务端,数据访问请求中携带有第一JWT令牌,第一JWT令牌中包括过期时间和偏移时间,偏移时间位于客户端登录的登录时间和过期时间之间的时间区间内,以使服务端根据访问时间、过期时间以及偏移时间之间的关系,确定第一JWT令牌是否满足续签条件。
第二接收模块1020,配置为接收服务端发送的与数据访问请求对应的目标数据,目标数据是服务端在确定第一JWT令牌满足续签条件时获取的。
需要说明的是,上述实施例所提供的数据访问装置与上述实施例所提供的数据访问方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的数据访问装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的数据访问方法。
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括中央处理单元(Central Processing Unit,CPU)1101,其可以根据存储在只读存储器(Read-Only Memory,ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(Random Access Memory,RAM)1103中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1103中,还存储有系统操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(Input/Output,I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的数据访问方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的数据访问方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (10)
1.一种数据访问方法,其特征在于,所述方法包括:
接收客户端发送的数据访问请求,所述数据访问请求中携带有第一JWT令牌,所述第一JWT令牌中包括过期时间和偏移时间,所述偏移时间位于所述客户端登录的登录时间和所述过期时间之间的时间区间内,以及记录接收所述数据访问请求的时间,并将所记录的时间作为访问时间;
根据所述访问时间、所述过期时间以及所述偏移时间之间的关系,确定所述第一JWT令牌是否满足续签条件;
若确定所述第一JWT令牌满足续签条件,则确定所述第一JWT令牌未过期,对所述第一JWT令牌自动续签,并获取与所述数据访问请求对应的目标数据,并发送所述目标数据至所述客户端;
所述根据所述访问时间、所述过期时间以及所述偏移时间之间的关系,确定所述第一JWT令牌是否满足续签条件包括:
获取所述第一JWT令牌中的过期时间和偏移时间,
根据所述访问时间、过期时间以及所述偏移时间之间的关系进行逻辑计算,基于计算结果判断所述第一JWT令牌是否满足续签条件。
2.根据权利要求1所述的方法,其特征在于,在所述获取与所述数据访问请求对应的目标数据之前,所述方法还包括:
生成与所述第一JWT令牌匹配的第二JWT令牌,所述第二JWT令牌中含有的过期时间是基于所述访问时间所确定的;
发送所述第二JWT令牌与所述访问时间至所述客户端,以使所述客户端用所述第二JWT令牌替换所述第一JWT令牌,并用所述访问时间替换所缓存的访问时间。
3.根据权利要求1所述的方法,其特征在于,所述根据所述访问时间、所述过期时间以及所述偏移时间之间的关系,确定所述第一JWT令牌是否满足续签条件,包括:
根据所述偏移时间和所述过期时间,确定续签的时间区间;
若所述访问时间位于所述续签的时间区间内,则确定所述第一JWT令牌满足续签条件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述访问时间未位于所述续签的时间区间内,且所述访问时间超过所述过期时间,则判断所述访问时间与最近一次的访问时间之间的差值是否超过预设时间差阈值;
若未超过,则确定所述第一JWT令牌满足续签条件,并执行生成与所述第一JWT令牌匹配的第二JWT令牌的步骤;
若超过,则确定所述第一JWT令牌已过期,则发送重新登录请求至所述客户端,以使所述客户端根据所述重新登录请求进行重新登录。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述访问时间未位于所述续签的时间区间内,且所述访问时间未超过所述偏移时间,则执行获取与所述数据访问请求对应的目标数据的步骤。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述接收客户端发送的数据访问请求之前,所述方法还包括:
接收所述客户端发送的登录信息;
若根据所述登录信息对所述客户端进行身份认证通过,则生成所述第一JWT令牌,并发送所述第一JWT令牌至所述客户端。
7.一种数据访问方法,其特征在于,所述方法包括:
发送数据访问请求至服务端,所述数据访问请求中携带有第一JWT令牌,所述第一JWT令牌中包括过期时间和偏移时间,所述偏移时间位于客户端登录的登录时间和所述过期时间之间的时间区间内,以使所述服务端根据访问时间、所述过期时间以及所述偏移时间之间的关系,确定所述第一JWT令牌是否满足续签条件;所述根据所述访问时间、所述过期时间以及所述偏移时间之间的关系,确定所述第一JWT令牌是否满足续签条件包括:获取所述第一JWT令牌中的过期时间和偏移时间,根据所述访问时间、过期时间以及所述偏移时间之间的关系进行逻辑计算,基于计算结果判断所述第一JWT令牌是否满足续签条件;
接收所述服务端发送的与所述数据访问请求对应的目标数据,所述目标数据是所述服务端在确定所述第一JWT令牌满足续签条件,确定所述确定所述第一JWT令牌未过期,对所述第一JWT令牌自动续签时获取的。
8.一种数据访问装置,其特征在于,所述装置包括:
第一接收模块,配置为接收客户端发送的数据访问请求,所述数据访问请求中携带有第一JWT令牌,所述第一JWT令牌中包括过期时间和偏移时间,所述偏移时间位于所述客户端登录的登录时间和所述过期时间之间的时间区间内,以及记录接收所述数据访问请求的时间,并将所记录的时间作为访问时间;
确定模块,配置为根据所述访问时间、所述过期时间以及所述偏移时间之间的关系,确定所述第一JWT令牌是否满足续签条件;所述根据所述访问时间、所述过期时间以及所述偏移时间之间的关系,确定所述第一JWT令牌是否满足续签条件包括:获取所述第一JWT令牌中的过期时间和偏移时间,根据所述访问时间、过期时间以及所述偏移时间之间的关系进行逻辑计算,基于计算结果判断所述第一JWT令牌是否满足续签条件;
第一发送模块,配置为若确定所述第一JWT令牌满足续签条件,则确定所述第一JWT令牌未过期,对所述第一JWT令牌自动续签,并获取与所述数据访问请求对应的目标数据,并发送所述目标数据至所述客户端。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至7中任一项所述的数据访问方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如权利要求1至7中任一项所述的数据访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111629265.4A CN114301678B (zh) | 2021-12-28 | 2021-12-28 | 一种数据访问方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111629265.4A CN114301678B (zh) | 2021-12-28 | 2021-12-28 | 一种数据访问方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114301678A CN114301678A (zh) | 2022-04-08 |
CN114301678B true CN114301678B (zh) | 2024-01-30 |
Family
ID=80971592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111629265.4A Active CN114301678B (zh) | 2021-12-28 | 2021-12-28 | 一种数据访问方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114301678B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978605A (zh) * | 2022-04-25 | 2022-08-30 | 联仁健康医疗大数据科技股份有限公司 | 页面访问方法、装置、电子设备及存储介质 |
CN115296877B (zh) * | 2022-07-25 | 2024-06-14 | 紫光云技术有限公司 | 一种jwt存储令牌失效与续期的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381078A (zh) * | 2019-07-29 | 2019-10-25 | 迈普通信技术股份有限公司 | 令牌续期的确定方法、装置、电子设备及存储介质 |
CN111585973A (zh) * | 2020-04-16 | 2020-08-25 | 北京明略软件系统有限公司 | 一种管理访问的方法和装置 |
CN112836204A (zh) * | 2021-02-03 | 2021-05-25 | 中国人民财产保险股份有限公司 | 一种令牌更新方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020177537A (ja) * | 2019-04-19 | 2020-10-29 | キヤノン株式会社 | 認証認可サーバー、クライアント、サービス提供システム、アクセス管理方法とプログラム |
-
2021
- 2021-12-28 CN CN202111629265.4A patent/CN114301678B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381078A (zh) * | 2019-07-29 | 2019-10-25 | 迈普通信技术股份有限公司 | 令牌续期的确定方法、装置、电子设备及存储介质 |
CN111585973A (zh) * | 2020-04-16 | 2020-08-25 | 北京明略软件系统有限公司 | 一种管理访问的方法和装置 |
CN112836204A (zh) * | 2021-02-03 | 2021-05-25 | 中国人民财产保险股份有限公司 | 一种令牌更新方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114301678A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11178134B2 (en) | Method and apparatus for allocating device identifiers | |
CN111556006B (zh) | 第三方应用系统登录方法、装置、终端及sso服务平台 | |
US20170289134A1 (en) | Methods and apparatus for assessing authentication risk and implementing single sign on (sso) using a distributed consensus database | |
US20190082026A1 (en) | Interface invocation method and apparatus for hybrid cloud | |
US8813185B2 (en) | Ad-hoc user account creation | |
CN114301678B (zh) | 一种数据访问方法及装置、电子设备、存储介质 | |
CN109150800B (zh) | 一种登录访问方法、系统和存储介质 | |
CN108632329B (zh) | 一种第三方插件的访问方法和装置 | |
CN110445615B (zh) | 网络请求安全性验证方法、装置、介质及电子设备 | |
CN112491778A (zh) | 认证方法、装置、系统及介质 | |
US20210044578A1 (en) | Utilizing behavioral features to authenticate a user entering login credentials | |
WO2023093500A1 (zh) | 一种访问验证方法及装置 | |
CN111294354B (zh) | 用于分布式环境的签名验证方法、装置、设备和存储介质 | |
CN107294931B (zh) | 调整限制访问频率的方法和装置 | |
CN115589295A (zh) | 基于网关Token的安全认证方法、系统、装置和介质 | |
CN113114623B (zh) | 数据连接方法、装置、终端设备和计算机可读存储介质 | |
CN113742702B (zh) | 基于企业微信的安全访问的方法、系统、设备及存储介质 | |
US11743250B2 (en) | Time-based token trust depreciation | |
US11849041B2 (en) | Secure exchange of session tokens for claims-based tokens in an extensible system | |
CN116208376A (zh) | 一种单点登录方法、装置、电子设备及存储介质 | |
CN113824675A (zh) | 管理登录态的方法和装置 | |
CN115694837B (zh) | 一种网络令牌管理方法、装置、设备及介质 | |
CN114500025B (zh) | 一种账户标识获取方法、装置、服务器及存储介质 | |
CN111756771B (zh) | 跨站脚本攻击的检测方法和装置 | |
US20240236099A9 (en) | Managing Trusted User Devices Via Silent Push Notifications |
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 |