1.引入依赖
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.18.1</version>
</dependency>
2.JWT工具类
/**
* JWT工具类
* token组成:标头 + 载荷 + 签名
*/
public class JWTUtils {
//token签名
private static final String SIGNATURE="token!@#$ha%$";
/**
* 得到token
* @param map 设置参数map
* @param expiresTime 过期事件
* @return
*/
public static String getToken(Map<String,String> map,Integer expiresTime){
JWTCreator.Builder builder = JWT.create();
map.forEach((k,v)->{
builder.withClaim(k,v);
});
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE,expiresTime);
builder.withExpiresAt(calendar.getTime());
return builder.sign(Algorithm.HMAC256(SIGNATURE));
}
/**
* 验证token
* @param token
*/
public static void verify(String token){
JWT.require(Algorithm.HMAC256(SIGNATURE)).build().verify(token);
}
/**
* 获取token载荷
* @param token
* @return
*/
public static DecodedJWT getToken(String token){
return JWT.require(Algorithm.HMAC256(SIGNATURE)).build().verify(token);
}
}