[发明专利]一种基于JWT的自动续签认证方法有效
申请号: | 202011103322.0 | 申请日: | 2020-10-15 |
公开(公告)号: | CN112260838B | 公开(公告)日: | 2022-02-22 |
发明(设计)人: | 鲁享琳 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/40 |
代理公司: | 四川省成都市天策商标专利事务所(有限合伙) 51213 | 代理人: | 郭会 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 jwt 自动 续签 认证 方法 | ||
1.一种基于JWT的自动续签认证方法,其特征在于,包括以下步骤:
A.建立token的数据库存储表用于存储token信息;包括:主键、用户id、token值、认证状态;其中,用户id用于存储用户的唯一标识,token值用于存储最新有效的JWT,认证状态用于记录该用户是否正在进行身份认证流程;
B.生成新的JWT;所述JWT由三部分组成:用于存放签名采用的加密方式的头部header、存放有效信息的载荷payload、签名signature;
C.截取token中的payload载荷部分,获取用户id和过期时间;
D.根据获取的过期时间,在JWT过期或即将过期时生成新token并传给客户端;
E.对每一次认证流程进行防重复认证检测,保证每个用户同时只能触发一个认证;
F.设置cookie为HttpOnly,实现防止XSS攻击功能;
G.截取客户端提交的token,验证token在传输过程中是否被篡改以及客户端提交的是否是最新的token;所述步骤G具体是将客户端提交的token中header部分用Base64解密,获取签名加密方式,然后采取header密文+.+payload密文的格式通过secret秘钥进行header指定的加密运算生成签名1;
然后截取客户端提交的token中的signature签名部分,存为签名2;再验证签名1和签名2是否一致,若不一致,则说明token在传输过程中被篡改,则认证失败;若一致则可继续进一步认证步骤;所述进一步认证步骤即获数据库中用户id对应的token,截取此token的签名,存为签名3,判定签名2和签名3是否一致,若不一致,则说明客户端提交的不是最新的token,则认证失败;若一致则token签名认证成功;
H.在用户登录和操作认证时,新增缺少的JWT,为超时和即将超时的token续签;所述步骤H具体包括:
若用户首次登录时,token表没有此用户的信息,验证完用户名和密码后,依照步骤B生成JWT,并在token表新增一条存储用户id和JWT的记录;
若用户非首次登录,验证完用户名和密码后,得到用户id,从而获取数据库中用户对应的token值;依照步骤D,如果超时或即将超时,
则生成新的JWT,并同步更新给数据库和客户端;否则,继续沿用数据库存储的token值;
用户验证身份时,依据步骤C,获取用户id和过期时间,获取获数据库中用户id对应的token进行相应的验证;且通过步骤G的token签名验证后,依照步骤D,如果超时和即将超时,生成新的JWT,
并同步更新给数据库和客户端;否则,继续沿用数据库存储的token值。
2.根据权利要求1所述的一种基于JWT的自动续签认证方法,其特征在于,JWT的组成部分中,header及payload均由Base64加密,signature是通过将header及payload的密文用句号连接起来,通过header中声明的加密方式进行加盐secret组合加密生成的。
3.根据权利要求2所述的一种基于JWT的自动续签认证方法,其特征在于,所述步骤B中生成新的JWT时是把过期时间和加密后的用户id作为playload成员生成新的JWT。
4.根据权利要求3所述的一种基于JWT的自动续签认证方法,其特征在于,所述步骤C中具体是通过截取token中的payload载荷部分,用Base64解密,获取过期时间和加密后的用户id,并解密用户id。
5.根据权利要求4所述的一种基于JWT的自动续签认证方法,其特征在于,所述步骤D中,具体是依据步骤C获取的过期时间和用户id,将过期时间和当前时间对比,判断是否超时或即将超时;如果超时或即将超时,则依照步骤B生成包含新过期时间和加密用户id的新token,并将此token更新进数据库中用户id对应的token字段,再将新token传给客户端。
6.根据权利要求1所述的一种基于JWT的自动续签认证方法,其特征在于,所述token表的认证状态初始值是未认证,在进入认证流程时,变为进入认证;认证流程结束时,恢复为未认证。
7.根据权利要求6所述的一种基于JWT的自动续签认证方法,其特征在于,所述步骤E具体在每一次发起的认证流程中均对认证状态进行检测,且只要检测到认证状态是进入认证时都要中止认证。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011103322.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动刨坑造壤机
- 下一篇:一种面向高度集成化的拉曼高阶拓扑激光源设计方法