package com.edu.dockerweb.dockerweb;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class JwtUtil {
public static final String JWT_SECRET="test"; //JWT的密钥
public static final int JWT_TTL=60*60*1000;
public static String createJWT(){
Map<String, Object> map = new HashMap<>();
map.put("alg", "HS256");
map.put("typ", "JWT");
String token = JWT.create().withHeader(map) // header
.withClaim("iss", "Service") // payload
.withClaim("aud", "APP").withClaim("name","wlq")
.withIssuedAt(new Date()) // sign time
.withExpiresAt(new Date(System.currentTimeMillis()+1000*30)) // expire time
.sign(Algorithm.HMAC256(JWT_SECRET)); // signature
System.out.println(token);
verifyToken(token);
return null;
}
public static void verifyToken(String token){
DecodedJWT jwt = null;
try {
JWTVerifier verifier = JWT.require(Algorithm.HMAC256(JWT_SECRET)).build();
jwt = verifier.verify(token);
System.out.println(jwt.getClaim("name").asString());
} catch (Exception e) {
// e.printStackTrace();
// token 校验失败, 抛出Token验证非法异常
System.out.println("检验失败");
}
}
}
pom
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.8.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>