一种分布式令牌刷新方法及系统技术方案

技术编号:35156975 阅读:32 留言:0更新日期:2022-10-12 17:14
本发明专利技术提供了一种分布式令牌刷新方法,所述方法包括以下步骤:步骤S1、用户登录时客户端向服务端获取身份授权,服务端鉴权通过后颁发身份令牌和刷新令牌;步骤S2、所述服务端将刷新令牌添加到刷新令牌白名单;步骤S3、所述客户端在本地存储所述身份令牌和刷新令牌;步骤S4、客户端携带身份令牌请求服务端,服务端校验身份令牌;步骤S5、客户端通过刷新令牌向服务端交换新的身份令牌,同时产生新的刷新令牌,并更新到刷新令牌白名单中,替换原先旧的刷新令牌;步骤S6、交换身份令牌成功后,替换本地存储的身份令牌和刷新令牌;本发明专利技术能够能够通过将身份令牌与刷新令牌存储在客户端中,降低服务器的内存存储压力,增强刷新令牌安全性。性。性。

【技术实现步骤摘要】
一种分布式令牌刷新方法及系统


[0001]本专利技术涉及计算机
,特别是一种分布式令牌刷新方法及系统。

技术介绍

[0002]首先用户输入账号密码登录,登录成功后会颁发给客户端一个短期的身份令牌和一个长期的刷新令牌(刷新令牌不能用于身份鉴权),当身份令牌过期后,则需要返回登录并重新输入账号密码登录,为了用户体验不需要频繁登录,则需要通过已授权的刷新令牌去交换新的身份令牌,来延续登录身份令牌。
[0003]目前现有的处理方案是两种令牌都存储在后端缓存服务器中,身份令牌过期后,可以通过刷新令牌向服务器交换新的身份令牌,同时刷新令牌也将过期,重新颁发新的刷新令牌;但面对未来物联网大量设备接入服务器,对后端缓存服务器的内存有很大压力,需要水平扩展多台服务器来提供支持。

技术实现思路

[0004]为克服上述问题,本专利技术的目的是提供一种能够通过将身份令牌与刷新令牌存储在客户端中,降低服务器的内存存储压力,增强刷新令牌安全性的分布式令牌刷新方法。
[0005]本专利技术采用以下方案实现:一种分布式令牌刷新方法,所述方法包括以下步骤:步骤S1、用户登录时客户端向服务端获取身份授权,服务端鉴权通过后颁发身份令牌和刷新令牌;步骤S2、所述服务端将刷新令牌添加到刷新令牌白名单;步骤S3、所述客户端在本地存储所述身份令牌和刷新令牌;步骤S4、客户端携带身份令牌请求服务端,服务端校验身份令牌;步骤S5、客户端通过刷新令牌向服务端交换新的身份令牌,同时产生新的刷新令牌,并更新到刷新令牌白名单中,替换原先旧的刷新令牌;步骤S6、交换身份令牌成功后,替换本地存储的身份令牌和刷新令牌。
[0006]进一步的, 所述步骤S1进一步具体为:用户登录时客户端向服务端发起请求获取身份授权,服务器通过AES对称加密算法,生成64位长度的刷新令牌,身份令牌则通过JSON WEB TOKEN方式生成;将刷新令牌加入到身份令牌的载荷数据中,防止旧版本产生的身份令牌通过鉴权校验,校验时服务端提取身份令牌的载荷数据的刷新令牌,判断是否在刷新令牌白名单中才通过鉴权校验。
[0007]进一步的,所述步骤S2进一步具体为:服务端将生成的刷新令牌添加到刷新令牌白名单,而身份令牌则下发到客户端本地存储并设置过期时间。
[0008]进一步的,所述步骤S3进一步具体为:客户端在本地存储身份令牌和刷新令牌,再次打开客户端时可以先读取本地存储的身份令牌,请求服务器时携带上身份令牌。
[0009]进一步的,所述步骤S4进一步具体为:客户端携带身份令牌请求服务端,服务器获取客户端请求的身份令牌,校验过期失效后,通知客户端身份令牌过期。
[0010]进一步的,所述身份令牌的校验规则包括以下步骤:步骤S11、验证身份令牌签名是否一致;步骤S12、验证playload载荷数据的exp字段时间是否小于当前时间判断过期。
[0011]进一步的,所述步骤S5进一步具体为:身份令牌过期后,客户端通过读取本地存储的刷新令牌与身份令牌,向服务端请求交换新的身份令牌,校验刷新令牌与身份令牌通过后,产生新的刷新令牌与身份令牌,将新的刷新令牌更新到刷新令牌白名单中,替换原先旧的刷新令牌,再新的刷新令牌与身份令牌再下发给客户端本地存储。
[0012]进一步的,所述刷新令牌的校验规则包括以下步骤:步骤S21、从请求的身份令牌中提取“re_token”绑定的刷新令牌,与请求的刷新令牌对比是否一致,不一致时校验失败不允许生成新身份令牌;步骤S22、判断请求的刷新令牌在刷新令牌白名单中是否存在,需要先将请求的刷新令牌通过AES算法解密得到用户uid与随机码nonce;如果存在且随机码nonce一致则通过;不一致则校验失败不允许生成新身份令牌。
[0013]本专利技术还提供了一种分布式令牌刷新系统,所述系统包括鉴权模块、添加模块、存储模块、请求模块、更新模块和替换模块;所述鉴权模块,即用户登录时客户端向服务端获取身份授权,服务端鉴权通过后颁发身份令牌和刷新令牌;所述添加模块,即所述服务端将刷新令牌添加到刷新令牌白名单;所述存储模块,即所述客户端在本地存储所述身份令牌和刷新令牌;所述请求模块,即客户端携带身份令牌请求服务端,服务端校验身份令牌;所述更新模块,即客户端通过刷新令牌向服务端交换新的身份令牌,同时产生新的刷新令牌,并更新到刷新令牌白名单中,替换原先旧的刷新令牌;所述替换模块,即交换身份令牌成功后,替换本地存储的身份令牌和刷新令牌。
[0014]进一步的,所述鉴权模块进一步具体为:用户登录时客户端向服务端发起请求获取身份授权,服务器通过AES对称加密算法,生成64位长度的刷新令牌,身份令牌则通过JSON WEB TOKEN方式生成;将刷新令牌加入到身份令牌的载荷数据中,防止旧版本产生的身份令牌通过鉴权校验,校验时服务端提取身份令牌的载荷数据的刷新令牌,判断是否在刷新令牌白名单中才通过鉴权校验。
[0015]进一步的,所述添加模块进一步具体为:服务端将生成的刷新令牌添加到刷新令牌白名单,而身份令牌则下发到客户端本地存储并设置过期时间。
[0016]进一步的,所述存储模块进一步具体为:客户端在本地存储身份令牌和刷新令牌,再次打开客户端时可以先读取本地存储的身份令牌,请求服务器时携带上身份令牌。
[0017]进一步的,所述请求模块进一步具体为:客户端携带身份令牌请求服务端,服务器获取客户端请求的身份令牌,校验过期失效后,通知客户端身份令牌过期。
[0018]进一步的,所述身份令牌的校验规则包括第一验证单元和第二验证单元;所述第一验证单元,即验证身份令牌签名是否一致;所述第二验证单元,即验证playload载荷数据的exp字段时间是否小于当前时间判断过期。
[0019]进一步的,所述更新模块进一步具体为:身份令牌过期后,客户端通过读取本地存储的刷新令牌与身份令牌,向服务端请求交换新的身份令牌,校验刷新令牌与身份令牌通过后,产生新的刷新令牌与身份令牌,将新的刷新令牌更新到刷新令牌白名单中,替换原先旧的刷新令牌,再新的刷新令牌与身份令牌再下发给客户端本地存储。
[0020]进一步的,所述刷新令牌的校验规则包括提取单元和判断单元;所述提取单元,即从请求的身份令牌中提取“re_token”绑定的刷新令牌,与请求的刷新令牌对比是否一致,不一致时校验失败不允许生成新身份令牌;所述判断单元,即判断请求的刷新令牌在刷新令牌白名单中是否存在,需要先将请求的刷新令牌通过AES算法解密得到用户uid与随机码nonce;如果存在且随机码nonce一致则通过;不一致则校验失败不允许生成新身份令牌。
[0021]本专利技术的有益效果在于:本专利技术通过将身份令牌与刷新令牌存储在客户端中,降低服务器的内存存储压力,同时提供轻量结构的刷新令牌白名单存储方案,增强刷新令牌安全性,提高了刷新令牌的刷新效率和速度。
附图说明
[0022]图1是本专利技术的方法流程示意图。
[0023]图2是本专利技术的系统原理框图。
具体实施方式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式令牌刷新方法,其特征在于,所述方法包括以下步骤:步骤S1、用户登录时客户端向服务端获取身份授权,服务端鉴权通过后颁发身份令牌和刷新令牌;步骤S2、所述服务端将刷新令牌添加到刷新令牌白名单;步骤S3、所述客户端在本地存储所述身份令牌和刷新令牌;步骤S4、客户端携带身份令牌请求服务端,服务端校验身份令牌;步骤S5、客户端通过刷新令牌向服务端交换新的身份令牌,同时产生新的刷新令牌,并更新到刷新令牌白名单中,替换原先旧的刷新令牌;步骤S6、交换身份令牌成功后,替换本地存储的身份令牌和刷新令牌。2.根据权利要求1所述的一种分布式令牌刷新方法,其特征在于:所述步骤S1进一步具体为:用户登录时客户端向服务端发起请求获取身份授权,服务器通过AES对称加密算法,生成64位长度的刷新令牌,身份令牌则通过JSON WEB TOKEN方式生成;将刷新令牌加入到身份令牌的载荷数据中,防止旧版本产生的身份令牌通过鉴权校验,校验时服务端提取身份令牌的载荷数据的刷新令牌,判断是否在刷新令牌白名单中才通过鉴权校验。3.根据权利要求1所述的一种分布式令牌刷新方法,其特征在于:所述步骤S2进一步具体为:服务端将生成的刷新令牌添加到刷新令牌白名单,而身份令牌则下发到客户端本地存储并设置过期时间。4.根据权利要求1所述的一种分布式令牌刷新方法,其特征在于:所述步骤S3进一步具体为:客户端在本地存储身份令牌和刷新令牌,再次打开客户端时可以先读取本地存储的身份令牌,请求服务器时携带上身份令牌。5.根据权利要求1所述的一种分布式令牌刷新方法,其特征在于:所述步骤S4进一步具体为:客户端携带身份令牌请求服务端,服务器获取客户端请求的身份令牌,校验过期失效后,通知客户端身份令牌过期。6.根据权利要求1所述的一种分布式令牌刷新方法,其特征在于:所述身份令牌的校验规则包括以下步骤:步骤S11、验证身份令牌签名是否一致;步骤S12、验证playload载荷数据的exp字段时间是否小于当前时间判断过期。7.根据权利要求1所述的一种分布式令牌刷新方法,其特征在于:所述步骤S5进一步具体为:身份令牌过期后,客户端通过读取本地存储的刷新令牌与身份令牌,向服务端请求交换新的身份令牌,校验刷新令牌与身份令牌通过后,产生新的刷新令牌与身份令牌,将新的刷新令牌更新到刷新令牌白名单中,替换原先旧的刷新令牌,再新的刷新令牌与身份令牌再下发给客户端本地存储。8.根据权利要求1所述的一种分布式令牌刷新方法,其特征在于:所述刷新令牌的校验规则包括以下步骤:步骤S21、从请求的身份令牌中提取“re_token”绑定的刷新令牌,与请求的刷新令牌对比是否一致,不一致时校验失败不允许生成新身份令牌;步骤S22、判断请求的刷新令牌在刷新令牌白名单中是否存在,需要先将请求的刷新令牌通过AES算法解密得到用户uid与随机码nonce;如果存在且随机码nonce一致则通过;不一致则校验失败不允许生成新身份令牌。9.一种分布式令牌刷新系统,其特征在于:所述系统包括鉴权模块、添加模块、存储模块、请求模块...

【专利技术属性】
技术研发人员:刘德建林琛陈波伍张发
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1