jwtUtils怎么写,帮我些写一个jwt生成和解析的工具类
时间: 2023-07-25 17:05:20 浏览: 92
好的,关于jwtUtils的写法,这里给您提供一份基于Java的jwt生成和解析的工具类代码:
```
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JwtUtils {
// 生成token的过期时间(一周)
private static final long EXPIRE_TIME = 7 * 24 * 60 * 60 * 1000;
// 秘钥
private static final String SECRET_KEY = "secret";
/**
* 生成token
* @param id 用户id
* @return token
*/
public static String generateToken(String id) {
Date nowDate = new Date();
Date expireDate = new Date(nowDate.getTime() + EXPIRE_TIME);
return Jwts.builder()
.setHeaderParam("typ", "JWT")
.setSubject(id)
.setIssuedAt(nowDate)
.setExpiration(expireDate)
.signWith(SignatureAlgorithm.HS512, SECRET_KEY)
.compact();
}
/**
* 解析token
* @param token token信息
* @return 用户id
*/
public static String validateToken(String token) {
String userId;
try {
Claims claims = Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(token)
.getBody();
userId = claims.getSubject();
} catch (Exception e) {
userId = null;
}
return userId;
}
}
```
使用时,调用generateToken方法生成token,传入用户id即可;调用validateToken方法解析token,返回用户id。其中密钥(SECRET_KEY)可以根据实际情况设置,并且需要注意密钥的保密性。
阅读全文