环境:JDK17、Springboot3.0.5、jjwt0.12.3、Manve3.8.1
一、jwt 的pom.xml引入
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.12.3</version>
</dependency>
二、jwt操作类
package com.lingyang.system.util.jwt;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jws;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
import io.jsonwebtoken.security.SecureDigestAlgorithm;
import org.springframework.beans.factory.annotation.Value;
import javax.crypto.SecretKey;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static com.fasterxml.jackson.databind.jsonFormatVisitors.JsonValueFormat.UUID;
/**
* @author **文
* @Description:
* @createDate 2024/7/18 17:17
**/
public class JwtUtil {
// //过期时间
// @Value("${jwt.expiration}")
// private Long expiration;
//
// @Value("${jwt.salt}")
// private static String salt;
//
//过期时间
final static Integer expiration = 72000;
final static String tokenKey = "ysyysyysyysyysyysyysyysyysyysyys";
final static String tokenname = "sys-token";
/**
* 1.从本地文件读取秘钥
* 2.工程.yml中配置salt
* 3.最终生成jwt秘钥,秘钥组成:MD5(1+2)
*/
private static SecretKey secret = Keys.hmacShaKeyFor(tokenKey.getBytes());
/**
* 初始化负载内数据
* @param username 用户名
* @return 负载集合
*/
private Map<String,Object> initClaims(String username){
Map<String, Object> claims = new HashMap<>();
//"iss" (Issuer): 代表 JWT 的签