1.官网
jwt.io/libraries
2.选jose4j
pom
<dependency>
<groupId>org.bitbucket.b_c</groupId>
<artifactId>jose4j</artifactId>
<version>0.9.4</version>
</dependency>
3.创建jwt工具
public class JwtUtil {
private static String secret = "e0e775bfcad04ecc94807b028dfca4d5";// "12345678123456781234567812345678"; // 注意密钥长短(最少32个字符)
private static String Issuer = "QiXiao";
private static String Audience = "WangPeng";
public static String CreateToken(UserEntity user) {
try {
JsonWebSignature jws = new JsonWebSignature();
//Claim
JwtClaims claims = new JwtClaims();
claims.setIssuer(Issuer); // who creates the token and signs it
claims.setAudience(Audience); // to whom the token is intended to be sent
claims.setExpirationTimeMinutesInTheFuture(10); // 过期时间
claims.setGeneratedJwtId(); // 为 JWT 设置一个自动生成的唯一 ID
claims.setIssuedAtToNow(); // 设置 Token 发布/创建 时间为当前时间
claims.setNotBeforeMinutesInThePast(2); // 设置生效时间为 2 分钟前
claims.setSubject("Bearer"); // the subject/principal is whom the token is about
claims.setClaim("UserSN", user.getSN());
claims.setClaim("email","wang_peng_yl@126.com"); // additional claims/attributes about the subject can be added
jws.setPayload(claims.toJson());
//Header
jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
jws.setHeader("typ", "JWT");
//签名
Key hmacKey = CreateKey();
jws.setKey(hmacKey);
jws.setDoKeyValidation(false);
String jwt = jws.getCompactSerialization();
System.out.println(jwt);
return jwt