汕头seo推广外包优化培训方式
目录
JWT-生成
具体代码
运行结果如下
JWT-校验
具体代码
运行结果如下
小结
JWT-生成
具体代码
/*** 测试JWT令牌的生成*/@Testpublic void TestJWT() {// 设置自定义内容Map<String, Object> claims = new HashMap<>();claims.put("id", 1);claims.put("name", "hkm");String jwt = Jwts.builder().signWith(SignatureAlgorithm.HS256, "secretKey") // 设置签名算法及密钥名称.setClaims(claims) // 设置自定义内容(载荷).setExpiration(new Date(System.currentTimeMillis() + 3600 * 1000)) // 设置令牌有效期为1小时.compact();System.out.println(jwt);}
运行结果如下
eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiaGttIiwiaWQiOjEsImV4cCI6MTY5MzAzNTk3NX0.6PeZU0Zk9znGehWzIS7ts03WIdatpxjVZWXg2JcRNbk
JWT-校验
具体代码
/*** 校验JWP令牌的生成*/@Testpublic void TestParseJWT() {Claims claims = Jwts.parser().setSigningKey("secretKey") // todo 设置对应的密钥名称.parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiaGttIiwiaWQiOjEsImV4cCI6MTY5MzAzNTk3NX0.6PeZU0Zk9znGehWzIS7ts03WIdatpxjVZWXg2JcRNbk")// todo 设置要解析的JWT令牌内容.getBody(); // todo 获取body部分信息System.out.println(claims);}
运行结果如下
{name=hkm, id=1, exp=1693035975}
小结
- JWT校验时使用的签名密钥,必须和生成JWT令牌时使用的密钥是配套的
- 如果JWT令牌解析校验时报错,则说明JWT令牌被篡改或者失效了(超过了有效器),令牌非法