【技术实现步骤摘要】
一种分布式令牌刷新方法及系统
[0001]本专利技术涉及计算机
,特别是一种分布式令牌刷新方法及系统。
技术介绍
[0002]首先用户输入账号密码登录,登录成功后会颁发给客户端一个短期的身份令牌和一个长期的刷新令牌(刷新令牌不能用于身份鉴权),当身份令牌过期后,则需要返回登录并重新输入账号密码登录,为了用户体验不需要频繁登录,则需要通过已授权的刷新令牌去交换新的身份令牌,来延续登录身份令牌。
[0003]目前现有的处理方案是两种令牌都存储在后端缓存服务器中,身份令牌过期后,可以通过刷新令牌向服务器交换新的身份令牌,同时刷新令牌也将过期,重新颁发新的刷新令牌;但面对未来物联网大量设备接入服务器,对后端缓存服务器的内存有很大压力,需要水平扩展多台服务器来提供支持。
技术实现思路
[0004]为克服上述问题,本专利技术的目的是提供一种能够通过将身份令牌与刷新令牌存储在客户端中,降低服务器的内存存储压力,增强刷新令牌安全性的分布式令牌刷新方法。
[0005]本专利技术采用以下方案实现:一种分布式令牌刷新方法,所述方法包括以下步骤:步骤S1、用户登录时客户端向服务端获取身份授权,服务端鉴权通过后颁发身份令牌和刷新令牌;步骤S2、所述服务端将刷新令牌添加到刷新令牌白名单;步骤S3、所述客户端在本地存储所述身份令牌和刷新令牌;步骤S4、客户端携带身份令牌请求服务端,服务端校验身份令牌;步骤S5、客户端通过刷新令牌向服务端交换新的身份令牌,同时产生新的刷新令牌,并更新到刷新令牌白名单中,替换原先 ...
【技术保护点】
【技术特征摘要】
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.一种分布式令牌刷新系统,其特征在于:所述系统包括鉴权模块、添加模块、存储模块、请求模块...
【专利技术属性】
技术研发人员:刘德建,林琛,陈波,伍张发,
申请(专利权)人:福建天晴在线互动科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。