feat(auth): Gateway JwtUtil 增加 userType 解析支持

- 新增三参数 generateToken 方法,支持传入 userType
- 旧方法默认 userType=ADMIN,保持向后兼容
- 新增 getUserTypeFromToken 方法解析 Token 中的 userType
This commit is contained in:
张翔
2026-06-03 11:22:09 +08:00
parent f66ff5c8f8
commit 0e73bd4520
@@ -28,6 +28,10 @@ public class JwtUtil {
}
public String generateToken(String username, Long userId) {
return generateToken(username, userId, "ADMIN");
}
public String generateToken(String username, Long userId, String userType) {
Date now = new Date();
Date expiryDate = new Date(now.getTime() + expiration);
@@ -35,13 +39,14 @@ public class JwtUtil {
String token = Jwts.builder()
.setSubject(username)
.claim("userId", userId)
.claim("userType", userType)
.claim("keyVersion", jwtKeyService.getCurrentKeyVersion())
.setIssuedAt(now)
.setExpiration(expiryDate)
.signWith(getSigningKey())
.compact();
logger.debug("Generated JWT token for user: {}, userId: {}", username, userId);
logger.debug("Generated JWT token for user: {}, userId: {}, userType: {}", username, userId, userType);
return token;
} catch (Exception e) {
@@ -74,6 +79,11 @@ public class JwtUtil {
return claims.get("userId", Long.class);
}
public String getUserTypeFromToken(String token) {
Claims claims = parseToken(token);
return claims.get("userType", String.class);
}
public boolean validateToken(String token) {
try {
parseToken(token);