方式一:自定义工具类
手动编写代码,写两个方法,一个生成,一个解析;
第一步:导入依赖
        <!--JWT令牌依赖-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.1</version>
        </dependency>
		
		<!--jdk9以后需添加此依赖-->
		<dependency>
		    <groupId>javax.xml.bind</groupId>
		    <artifactId>jaxb-api</artifactId>
		</dependency>
 
第二步:手动编写代码
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.Map;
/**
 * token生成工具
 */
public class JwtUtils {
    /**
     * 有效期,单位是毫秒
     */
    private static Long expire = 259200000L;
    /**
     * 生成JWT令牌
     */
    public static String generateJwt(Map<String, Object> claims, String signKey) {
        String jwt = Jwts.builder()
                .addClaims(claims)
                .signWith(SignatureAlgorithm.HS256, signKey)
                .setExpiration(new Date(System.currentTimeMillis() + expire))
                .compact();
        return jwt;
    }
    /**
     * 解析JWT令牌
     */
    public static Claims parseJWT(String jwt, String signKey) {
        Claims claims = Jwts.parser()
                .setSigningKey(signKey)
                .parseClaimsJws(jwt)
                .getBody();
        return claims;
    }
}
 
第三步:使用
配置tokenKey
# tokenKey(需要四个字符或以上)
token:
  key: csdn
 
注入配置
    @Value("${token.key}")
    private String tokenKey;
 
生成token
	// 写入用户信息
	HashMap<String, Object> tokenMap = new HashMap<>();
	tokenMap.put("userName",userDB.getUsername());
	tokenMap.put("id",userDB.getUserId());
	
	// 生成token
	String token = JwtUtils.generateJwt(tokenMap,tokenKey);
 
测试
 
方式二:Hutool工具包
第一步:导入依赖
	<dependency>
	    <groupId>cn.hutool</groupId>
	    <artifactId>hutool-all</artifactId>
	    <version>5.8.6</version>
	</dependency>
 
第二步:使用
配置tokenKey
# tokenKey
token:
  key: csdn
 
注入配置
    @Value("${token.key}")
    private String tokenKey;
 
使用createToken()方法生成token,注意方法参数为tokenKey的字节数组;
	// 写入用户信息
	HashMap<String, Object> tokenMap = new HashMap<>();
	tokenMap.put("userName",userDB.getUsername());
	tokenMap.put("id",userDB.getUserId());
	
	// 生成token
	String token = JWTUtil.createToken(tokenMap,tokenKey.getBytes());
 
测试

总结
推荐使用方法二,方法一需要导入两个依赖,并且tokenKey长度是有限制的,字符长度要为4位或者超过4位。



















