1.生成JSON Web令牌的工具类
package com.atguigu.common.utils;import io.jsonwebtoken.*;
import org.springframework.util.StringUtils;import java.util.Date;/*** 生成JSON Web令牌的工具类*/
public class JwtHelper {//token过期时间private static long tokenExpiration = 365 * 24 * 60 * 60 * 1000;//加密秘钥private static String tokenSignKey = "123456";//根据用户id和用户名称生成token字符串public static String createToken(String userId, String username) {String token = Jwts.builder().setSubject("AUTH-USER").setExpiration(new Date(System.currentTimeMillis() + tokenExpiration)).claim("userId", userId).claim("username", username).signWith(SignatureAlgorithm.HS512, tokenSignKey).compressWith(CompressionCodecs.GZIP).compact();return token;}//从token字符串获取useridpublic static String getUserId(String token) {try {if (StringUtils.isEmpty(token)) return null;Jws<Claims> claimsJws = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token);Claims claims = claimsJws.getBody();String userId = (String) claims.get("userId");return userId;} catch (Exception e) {e.printStackTrace();return null;}}//从token字符串获取usernamepublic static String getUsername(String token) {try {if (StringUtils.isEmpty(token)) return "";Jws<Claims> claimsJws = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token);Claims claims = claimsJws.getBody();return (String) claims.get("username");} catch (Exception e) {e.printStackTrace();return null;}}public static void main(String[] args) {String token = JwtHelper.createToken("1", "test");System.out.println(token);String userId = JwtHelper.getUserId(token);System.out.println(userId);String username = JwtHelper.getUsername(token);System.out.println(username);}
}