学生党初自使用jwt生成token,如有更好的方法,欢迎大佬帮忙指正
public class JwtUtils {
private static String sub = "xiaowei";
private static long timer = 1000 * 60 * 60 * 24; // 过期时间一天
/**
* 生成一个token
* @param data
* @return
*/
public static String getToken(String data) {
JwtBuilder jwtBuilder = Jwts.builder();
String token = jwtBuilder.setSubject(data)
.signWith(SignatureAlgorithm.HS256, sub)
.setExpiration(new Date(System.currentTimeMillis() + timer))
.compact();
return token;
}
/**
* 解析token
* @param tokne
* @return
*/
public static Claims parseToken(String tokne) {
try {
JwtParser jwtParser = Jwts.parser();
Jws<Claims> parseClaimsJws =
jwtParser
.setSigningKey(sub)
.parseClaimsJws(tokne);
Claims claims = parseClaimsJws.getBody();
return claims;
} catch (RuntimeException e) {
//这个异常是自己定义的当然我们也可以抛RuntimeException
throw new TokenException("token出现问题");
}
}
}