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>

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

被折叠的 条评论
为什么被折叠?



