package com.study.utils;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import java.util.Calendar;
import java.util.Map;
public class JWTUtils {
private static final String SING = "qweqw&*(%&*";
/**
* 生成token
*/
public static String getToken(Map map){
Calendar instance = Calendar.getInstance();
instance.add(Calendar.DATE, 5);//时长五天
JWTCreator.Builder builder = JWT.create();
//设置jwt的header可以不设置,有默认值
//设置jwt的payload
map.forEach((k,v)->{
builder.withClaim(k,v);
});
//设置jwt的超时时间和sign
String token = builder.withExpiresAt(instance.getTime())
.sign(Algorithm.HMAC256(SING));
return token;
}
/**
* 验证token的合法性
*/
public static void verify(String token){
JWT.require(Algorithm.HMAC256(SING)).build().verify(token);
}
/**
* 获取token信息方法
*/
public static DecodedJWT getTokenInfo(String token){
DecodedJWT verify = JWT.require(Algorithm.HMAC256(SING)).build().verify(token);
return verify;
}
}