生成是有个密匙的,比如你是用用户的密码作为密匙,并且token里保存了这个用户的id,下次客户端带token过来,你用这个用户密码去验证是否是这个token就可以了
// Algorithm.HMAC256():使用HS256生成token,密钥则是用户的密码,唯一密钥的话可以保存在服务端。
// withAudience()存入需要保存在token的信息,这里我把用户ID存入token中
// withExpiresAt 设置过期时间 单位为毫秒 这里设置为1小时
public static String getToken(User user) {
String token = "";
token = JWT.create().withAudience(user.getId() + "").withExpiresAt(new Date(System.currentTimeMillis()+1000*60*60))
.sign(Algorithm.HMAC256(user.getPassword()));
return token;
}
// 验证 token
JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(user.getPassword())).build();
try {
jwtVerifier.verify(token);
} catch (JWTVerificationException e) {
throw new Exception("token已过期");
}