引入依赖
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.11.0</version>
</dependency>
代码如下:
@Slf4j
public class JWTUtil{
//签发人
private static final String ISSUER = "issuer";
//过期时间
private static final long EXPIRE_TIME = 5*60*1000;
//密钥
private static final String SECRET_KEY = "secret_key";
//权限变量名
private static final String USER_NAME = "username";
//生成token
public static String token(String username) {
Algorithm key = Algorithm.HMAC256(SECRET_KEY);
Date now = new Date();
String token = JWT.create()
.withIssuer(ISSUER)
.withIssuedAt(now)
.withExpiresAt(new Date(now.getTime()+EXPIRE_TIME))
.withClaim(USER_NAME,username)
.sign(key);
log.info("generated token user={}",username);
return token;
}
public static boolean verify(String token) {
try{
Algorithm key = Algorithm.HMAC256(SECRET_KEY);
JWTVerifier verifier = JWT.require(key)
.withIssuer(ISSUER)
.build();
verifier.verify(token);
return true;
}catch(Exception e) {
e.printStackTrace();
}
return false;
}
}
测试类如下:
@SpringBootTest
public class JWTUtilTest{
@Test
public void testJWTUtil() {
String token = JWTUtil.token("userone");
System.out.println(token);
boolean b = JWTUtil.verify(token);
System.out.println(b);
}
}