token生成工具类
在pom引入依赖
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.3.0</version>
</dependency>
token工具类
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.auth0.jwt.JWTVerifier;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
@Slf4j
public class TokenUtils {
private static final long EXPIRE_DATE = 180 * 60 * 60 * 1000;
private static final String TOKEN_SECRET = "#######################";
public static String getToken(String account) {
String token = "";
try {
Date date = new Date(System.currentTimeMillis() + EXPIRE_DATE);
Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET);
token = JWT.create()
.withClaim("account", account)
.withExpiresAt(date)
.sign(algorithm);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return token;
}
public static Boolean verify(String token) {
try {
Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET);
JWTVerifier verifier = JWT.require(algorithm).build();
DecodedJWT jwt = verifier.verify(token);
return true;
} catch (Exception e) {
return false;
}
}
public static String getAccount(String token) {
try {
DecodedJWT jwt = JWT.decode(token);
if (System.currentTimeMillis() - jwt.getExpiresAt().getTime() > 0) {
return null;
}
return jwt.getClaim("account").asString();
} catch (Exception e) {
return null;
}
}
}