系列文章目录
文章目录
- 系列文章目录
- 前言
前言
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
JWT官网: https://jwt.io/
JWT(Java版)的github地址:https://github.com/jwtk/jjwt
之前写过两篇关于JWT的文章,如下链接
JSON Web Token JWT介绍
JSON Web Token JWT 示例
其中重点要提出的是,JWT存储的是明文,因此不能存储重要信息,或者可以进行加密。
在解决一个问题时,在工程A中生成了JWT的Token,由于JWT存储的是明文,解析是没有问题的,但是重点是效验,在工程B中,因为引入了HuTool工具箱(Hutool参考文档),当我使用其方法进行Token验证时,发现验证是失败的。
例如,在工程A中生成了一个Token为:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqYXZh5bCP5by6IiwiZXhwIjoxNjgxMDI0NjM5LCJpYXQiOjE2Nzg0MzI2Mzl9.wDGa4FWi9Ok5WlWvhvhrorvjgdd9R1rYWu8nZLWANWY
如果解析,可以正常解析到内容,在A中也是验证正常的。
但是在工程B中,使用HuTool来验证一下这个Token,发现验证失败。
package com.example.springboot;
import cn.hutool.jwt.JWTUtil;
public class JwtTest {
public static void main(String[] args) {
String token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqYXZh5bCP5by6IiwiZXhwIjoxNjgxMDI0NjM5LCJpYXQiOjE2Nzg0MzI2Mzl9.wDGa4FWi9Ok5WlWvhvhrorvjgdd9R1rYWu8nZLWANWY";
String key