JWT鉴权方案(RFC 7519)

JWT(JSON Web Tokens)是一种遵循RFC 7519标准的身份验证方式,其特点是不需要在服务端存储信息。JWT由header、payload和signature三部分组成,常用于分布式系统中的SSO。在HTTP请求中,JWT通常作为Authorization头的bearer token发送。jjwt是Java中常用的JWT处理库。当JWT过期时,服务端可返回refreshCode,以便客户端获取新的JWT-token。

       JWT全称是JSON Web Tokens,是在分布式应用环境间传递身份信息而执行的一种基于JSON的开放标准--(RFC 7519)。它与普通的token方案需要在服务端存储(redis)不同,用户的信息本身就存储在jwt里面。

       jwt分为三部分:header、payload和signature,三者之间通过"."分隔。Header申明了JWT使用的签名算法,如:'{"alg":"HS256","typ":"JWT","zip":"flat"}';payload则可以包括如:userId、roleId、expires等信息;signature则是对以上两部分的使用非对称秘钥做的签名。通常我们在请求服务时将这个jwt "token"放到http-header头信息中(Authorization:bearer {jwt})。

       jwt-token生成:1、定义header、payload属性;2、 base64UrlEncode(header) + '.' + base64UrlEncode(payload),其中如果payload过大,还可以压缩;3、对第二步结果使用header中指定的算法alg做签名,再追加到其后面。

       jwt-token验证:1、将token拆分为三部分,分别base64UrlDecode;2、对前两部分做签名并比较是否一致;3、判断payload中的exp是否已经过期。

       工具包:

       <dependency>
          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值