CN115296877A - 一种jwt存储令牌失效与续期的方法 - Google Patents

一种jwt存储令牌失效与续期的方法 Download PDF

Info

Publication number
CN115296877A
CN115296877A CN202210888072.9A CN202210888072A CN115296877A CN 115296877 A CN115296877 A CN 115296877A CN 202210888072 A CN202210888072 A CN 202210888072A CN 115296877 A CN115296877 A CN 115296877A
Authority
CN
China
Prior art keywords
token
jwt
authentication
renewal
user
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.)
Pending
Application number
CN202210888072.9A
Other languages
English (en)
Inventor
邹虎
奉忠盛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unicloud Technology Co Ltd
Original Assignee
Unicloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Unicloud Technology Co Ltd filed Critical Unicloud Technology Co Ltd
Priority to CN202210888072.9A priority Critical patent/CN115296877A/zh
Publication of CN115296877A publication Critical patent/CN115296877A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种JWT存储令牌失效与续期的方法,包括:认证服务器授权;服务器成功授权后,将用户相关信息封装,生成JWT结构的token;客户端后台鉴权;用户携带token访问客户端资源,后台服务在过滤器中对token进行JWT解析;认证服务器鉴权;接收到校验请求后,进行JWT解析,进行鉴权。本发明所述的JWT存储令牌失效与续期的方法充分发挥两者的优势,并很好地解决JWT无法失效与续期的问题;JWT负载中只暴露非敏感的基本信息,被泄漏也无妨,更安全;可以使用简易的对称加密方式,解析速度更快。

Description

一种JWT存储令牌失效与续期的方法
技术领域
本发明属于通用后端技术领域,尤其是涉及一种JWT存储令牌失效与续期的方法。
背景技术
JWT全称JSON Web Token,是一种基于JSON的开放标准(RFC 7519)协议,由标题(Header)、有效负载(Payload)、签名(Signature)三个部分组成。它是目前最流行的跨域身份验证解决方案。用户与服务器通信时,服务器仅依赖于JWT对象来标识用户,为了防止用户篡改数据,服务器在生成对象时添加签名。JWT保存在客户端中,服务器不需要保存任何会话数据,即服务器为无状态,更容易扩展。
另一种解决方案是传统的Session模式,会话写入持久层或缓存等,服务器有状态。
两者都有缺点:
JWT最大缺点是服务器不保存会话状态,所以在使用期间不可能取消令牌或更改令牌的权限。也就是说,一旦签发,在有效期内将会一直有效。JWT本身包含认证信息,因此一旦信息泄露,任何人都可以获得令牌的所有权限。为了减少盗用,JWT的有效期不宜设置太长。对于重要操作每次请求都必须进行身份鉴权。JWT脱离服务器,也没有办法续期,只能重新签发。
Session有成熟的存储方案,但查询数据库或缓存往往比验证token要耗时得多,且分布式下端点众多,请求会成堆验证,服务器压力会比较大。
发明内容
有鉴于此,为克服上述缺陷,本发明旨在提出一种JWT存储令牌失效与续期的方法。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明提供了一种JWT存储令牌失效与续期的方法,包括:
认证服务器授权;服务器成功授权后,将用户相关信息封装,生成JWT结构的token;
客户端后台鉴权;用户携带token访问客户端资源,后台服务在过滤器中对token进行JWT解析;
认证服务器鉴权;接收到校验请求后,进行JWT解析,进行鉴权。
进一步的,用户相关信息包括以下中的至少一项:uid用户唯一标识、username用户名、expires_time过期时间。
进一步的,认证服务器授权中,还包括:
授权储备两个键值至redis缓存:
uid:token,键过期时间与expires_time属性一致;
token:userInfo,表示用户详细信息对象。
进一步的,客户端后台鉴权,包括如下过程:
如果结构不符合,视同伪造,抛出异常鉴权失败;
负载中expires_time过期时间是否过半,过半则需要发送请求至认证服务器鉴权并换取新token;
过期时间未过半,重要操作或要拿取用户详细信息的接口,也需要请求认证服务器鉴权获取;
过期时间未过半,仅需简单用户信息的接口,负载信息就能满足,无需再请求认证服务器。
进一步的,认证服务器鉴权,包括如下步骤:
接收到校验请求后,解析JWT,结构错误,视为伪造,授权失败;
负载信息中的uid为key查询redis,不存在视为过期或失效,授权失败;存在则对比两个token值是否一致,不一致视失效,返回401;
token一致的情况下,过期时间是否过半,未过半则从redis中查询,返回用户详细信息;如果时间已过半,需要重新生成token值,将uid键对应的值替换成新的token,然后删除旧token键,增加新token键。
进一步的,还包括客户端前台存储;
其中,针对后端响应的处理逻辑如下:
如果是正常响应,判断响应体中是否含有新token,若有则将新token存储在localstorage本地缓存中,并清除旧token;
如果是异常响应,授权失败,则清除现有token,并重定向至登录页;
其中,向后端发送请求的处理逻辑:
每次请求都在Header中带上本地存储的token。
第二方面,本发明提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述第一方面所述的JWT存储令牌失效与续期的方法。
第三方面,本发明提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述第一方面所述的JWT存储令牌失效与续期的方法。
相对于现有技术,本发明所述的JWT存储令牌失效与续期的方法具有以下优势:
1、本发明所述的JWT存储令牌失效与续期的方法,充分发挥两者的优势,并很好地解决JWT无法失效与续期的问题;JWT负载中只暴露非敏感的基本信息,被泄漏也无妨,更安全;可以使用简易的对称加密方式,解析速度更快。
2、Redis存储符合分布式要求,易于横向扩展。
3、过半机制,比refresh_token刷新续期模式,步骤更简便。
4、大部分情况下,接口只需要用户的简易信息,依靠JWT结构的优势,减少认证服务器压力的同时,响应更快。
5、对于重要操作或需要拿取用户详细信息的接口,能到认证服务器进行鉴权,更加的安全。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明所述的认证服务器授权流程图;
图2为本发明所述的客户端后台鉴权流程图;
图3为本发明所述的认证服务器鉴权流程图;
图4为本发明所述的客户端前台存储流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
本实施例提供了一种JWT存储令牌失效与续期的方法,包括如下过程:
1、认证服务器授权
如图1所示,用户登录,认证服务器成功授权后将uid(用户唯一标识),username(用户名),expires_time(过期时间)等必要非敏感信息封装进Payload负载中,生成JWT结构的token,返回客户端保存。
授权储备两个键值至redis缓存:
a、uid:token,键过期时间与expires_time属性一致。
b、token:userInfo(用户详细信息对象)。
想要JWT失效,只需删除对应的键值即可。
2、客户端后台鉴权
如图2所示,用户携带token访问客户端资源,后台服务在过滤器中对token进行JWT解析;
1、如果结构不符合,视同伪造,抛出异常鉴权失败;
2、负载中expires_time过期时间是否过半,过半则需要发送请求至认证服务器鉴权并换取新token;
3、过期时间未过半,重要操作或要拿取用户详细信息的接口,也需要请求认证服务器鉴权获取;
4、过期时间未过半,仅需简单用户信息的接口,负载信息就能满足,无需再请求认证服务器。
3、认证服务器鉴权
如图3所示,过程如下:
1、接收到/check_token校验请求后,解析JWT,结构错误,视为伪造,返回401(http的响应码,表示授权失败);
2、负载信息中的uid为key查询redis(uid:token),不存在视为过期或失效,返回401;存在则对比两个token值是否一致,不一致视失效,返回401;
3、token一致的情况下,过期时间是否过半,未过半则从redis中查询(token:userInfo),返回用户详细信息;如果时间已过半,需要重新生成token值,将uid键对应的值替换成新的token,然后删除旧token键,增加新token键。
4、客户端前台存储
如图4所示,针对后端响应的处理逻辑:
1、如果是正常响应,判断响应体中是否含有新token,若有则将新token存储在localstorage(本地缓存)中,并清除旧token;
2、如果是异常响应,响应码为401则清除现有token,并重定向至登录页;
向后端发送请求的处理逻辑:
每次请求都在Header中带上本地存储的token。
本实施例提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述实施例所述的JWT存储令牌失效与续期的方法。
本实施例提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述实施例所述的JWT存储令牌失效与续期的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种JWT存储令牌失效与续期的方法,其特征在于,包括:
认证服务器授权;服务器成功授权后,将用户相关信息封装,生成JWT结构的token;
客户端后台鉴权;用户携带token访问客户端资源,后台服务在过滤器中对token进行JWT解析;
认证服务器鉴权;接收到校验请求后,进行JWT解析,进行鉴权。
2.根据权利要求1所述的JWT存储令牌失效与续期的方法,其特征在于,用户相关信息包括以下中的至少一项:uid用户唯一标识、username用户名、expires_time过期时间。
3.根据权利要求1所述的JWT存储令牌失效与续期的方法,其特征在于,认证服务器授权中,还包括:
授权储备两个键值至redis缓存:
uid:token,键过期时间与expires_time属性一致;
token:userInfo,表示用户详细信息对象。
4.根据权利要求1所述的JWT存储令牌失效与续期的方法,其特征在于,客户端后台鉴权,包括如下过程:
如果结构不符合,视同伪造,抛出异常鉴权失败;
负载中expires_time过期时间是否过半,过半则需要发送请求至认证服务器鉴权并换取新token;
过期时间未过半,重要操作或要拿取用户详细信息的接口,也需要请求认证服务器鉴权获取;
过期时间未过半,仅需简单用户信息的接口,负载信息就能满足,无需再请求认证服务器。
5.根据权利要求1所述的JWT存储令牌失效与续期的方法,其特征在于,认证服务器鉴权,包括如下步骤:
接收到校验请求后,解析JWT,结构错误,视为伪造,授权失败;
负载信息中的uid为key查询redis,不存在视为过期或失效,授权失败;存在则对比两个token值是否一致,不一致视失效,返回401;
token一致的情况下,过期时间是否过半,未过半则从redis中查询,返回用户详细信息;如果时间已过半,需要重新生成token值,将uid键对应的值替换成新的token,然后删除旧token键,增加新token键。
6.根据权利要求1所述的JWT存储令牌失效与续期的方法,其特征在于,还包括客户端前台存储;
其中,针对后端响应的处理逻辑如下:
如果是正常响应,判断响应体中是否含有新token,若有则将新token存储在localstorage本地缓存中,并清除旧token;
如果是异常响应,授权失败,则清除现有token,并重定向至登录页;
其中,向后端发送请求的处理逻辑:
每次请求都在Header中带上本地存储的token。
7.一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,其特征在于,所述处理器在执行所述指令时,实现权利要求1-6任一所述的JWT存储令牌失效与续期的方法。
8.一种可读取存储介质,用于存储计算机程序,其特征在于,所述计算机程序在被处理器执行时,实现权利要求1-6任一所述的JWT存储令牌失效与续期的方法。
CN202210888072.9A 2022-07-25 2022-07-25 一种jwt存储令牌失效与续期的方法 Pending CN115296877A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210888072.9A CN115296877A (zh) 2022-07-25 2022-07-25 一种jwt存储令牌失效与续期的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210888072.9A CN115296877A (zh) 2022-07-25 2022-07-25 一种jwt存储令牌失效与续期的方法

Publications (1)

Publication Number Publication Date
CN115296877A true CN115296877A (zh) 2022-11-04

Family

ID=83825188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210888072.9A Pending CN115296877A (zh) 2022-07-25 2022-07-25 一种jwt存储令牌失效与续期的方法

Country Status (1)

Country Link
CN (1) CN115296877A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116599777A (zh) * 2023-07-18 2023-08-15 北京睿芯高通量科技有限公司 一种多端多级认证、鉴权的方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491058A (zh) * 2015-12-29 2016-04-13 Tcl集团股份有限公司 一种api访问分布式授权方法及其系统
CN106302346A (zh) * 2015-05-27 2017-01-04 阿里巴巴集团控股有限公司 Api调用的安全认证方法、装置、系统
CN110351265A (zh) * 2019-07-02 2019-10-18 创新奇智(重庆)科技有限公司 一种基于jwt的认证鉴权方法、计算机可读介质及系统
CN110381078A (zh) * 2019-07-29 2019-10-25 迈普通信技术股份有限公司 令牌续期的确定方法、装置、电子设备及存储介质
CN112260838A (zh) * 2020-10-15 2021-01-22 四川长虹电器股份有限公司 一种基于jwt的自动续签认证方法
CN112422477A (zh) * 2019-08-21 2021-02-26 普天信息技术有限公司 服务认证方法、服务端、电子设备和存储介质
CN112600674A (zh) * 2020-12-04 2021-04-02 中国农业银行股份有限公司深圳市分行 一种前后端分离系统的用户安全认证方法、装置及存储介质
CN112836204A (zh) * 2021-02-03 2021-05-25 中国人民财产保险股份有限公司 一种令牌更新方法和装置
CN113630363A (zh) * 2020-05-06 2021-11-09 福建省天奕网络科技有限公司 分布式令牌鉴权方法、存储介质
CN114301678A (zh) * 2021-12-28 2022-04-08 中国电信股份有限公司 一种数据访问方法及装置、电子设备、存储介质
CN114764507A (zh) * 2021-01-14 2022-07-19 北京电解智科技有限公司 资源访问的实现方法、装置、电子设备及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302346A (zh) * 2015-05-27 2017-01-04 阿里巴巴集团控股有限公司 Api调用的安全认证方法、装置、系统
CN105491058A (zh) * 2015-12-29 2016-04-13 Tcl集团股份有限公司 一种api访问分布式授权方法及其系统
CN110351265A (zh) * 2019-07-02 2019-10-18 创新奇智(重庆)科技有限公司 一种基于jwt的认证鉴权方法、计算机可读介质及系统
CN110381078A (zh) * 2019-07-29 2019-10-25 迈普通信技术股份有限公司 令牌续期的确定方法、装置、电子设备及存储介质
CN112422477A (zh) * 2019-08-21 2021-02-26 普天信息技术有限公司 服务认证方法、服务端、电子设备和存储介质
CN113630363A (zh) * 2020-05-06 2021-11-09 福建省天奕网络科技有限公司 分布式令牌鉴权方法、存储介质
CN112260838A (zh) * 2020-10-15 2021-01-22 四川长虹电器股份有限公司 一种基于jwt的自动续签认证方法
CN112600674A (zh) * 2020-12-04 2021-04-02 中国农业银行股份有限公司深圳市分行 一种前后端分离系统的用户安全认证方法、装置及存储介质
CN114764507A (zh) * 2021-01-14 2022-07-19 北京电解智科技有限公司 资源访问的实现方法、装置、电子设备及存储介质
CN112836204A (zh) * 2021-02-03 2021-05-25 中国人民财产保险股份有限公司 一种令牌更新方法和装置
CN114301678A (zh) * 2021-12-28 2022-04-08 中国电信股份有限公司 一种数据访问方法及装置、电子设备、存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116599777A (zh) * 2023-07-18 2023-08-15 北京睿芯高通量科技有限公司 一种多端多级认证、鉴权的方法
CN116599777B (zh) * 2023-07-18 2023-09-26 北京睿芯高通量科技有限公司 一种多端多级认证、鉴权的方法

Similar Documents

Publication Publication Date Title
CN110086822B (zh) 面向微服务架构的统一身份认证策略的实现方法及系统
JP7060362B2 (ja) 電子デバイスのためのイベント証明書
US10055561B2 (en) Identity risk score generation and implementation
CN109639730A (zh) 基于令牌的http无状态协议下信息系统数据接口认证方法
US7546630B2 (en) Methods, systems, and media to authenticate a user
US11563580B2 (en) Security token validation
RU2575987C2 (ru) Управление данными в базе данных каталога
CN112597472A (zh) 单点登录方法、装置及存储介质
JP2009519515A (ja) サービスアカウントを保護するための方法、システム、及び装置
CN108632241B (zh) 一种多应用系统统一登录方法和装置
CN110855672A (zh) 一种基于jwt的可手动撤销的授权方法
CN106713276B (zh) 一种基于授权认证的数据获取方法及其系统
US9635024B2 (en) Methods for facilitating improved user authentication using persistent data and devices thereof
CN112671539B (zh) 一种处理多请求令牌过期续签的方法、系统、介质及设备
CN106878335B (zh) 一种用于登录验证的方法及系统
CN110336807A (zh) 一种基于Web服务的身份认证方法、设备以及存储介质
CN115296877A (zh) 一种jwt存储令牌失效与续期的方法
CN114117551B (zh) 一种访问验证方法及装置
CN112559994A (zh) 访问控制方法、装置、设备及存储介质
CN108234122B (zh) 令牌校验方法和装置
CN101084664B (zh) 提供并利用网络可信环境的方法、系统以及数据服务器
KR102356725B1 (ko) 계층 블록체인을 이용한 인증 및 정책 관리 방법
CN110740122A (zh) 一种提高数据仓库安全性的方法、装置
CN112861092B (zh) 基于jwt认证应用实现单终端登录限制的方法及系统
CN113364798A (zh) 一种基于Redis的用户访问频率处理装置

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