From 0e73bd45203b99f333b421d5dae0d2e973574fc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Wed, 3 Jun 2026 11:22:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(auth):=20Gateway=20JwtUtil=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20userType=20=E8=A7=A3=E6=9E=90=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增三参数 generateToken 方法,支持传入 userType - 旧方法默认 userType=ADMIN,保持向后兼容 - 新增 getUserTypeFromToken 方法解析 Token 中的 userType --- .../cn/novalon/gym/manage/gateway/util/JwtUtil.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gym-manage-api/manage-gateway/src/main/java/cn/novalon/gym/manage/gateway/util/JwtUtil.java b/gym-manage-api/manage-gateway/src/main/java/cn/novalon/gym/manage/gateway/util/JwtUtil.java index f18a60d..709c524 100644 --- a/gym-manage-api/manage-gateway/src/main/java/cn/novalon/gym/manage/gateway/util/JwtUtil.java +++ b/gym-manage-api/manage-gateway/src/main/java/cn/novalon/gym/manage/gateway/util/JwtUtil.java @@ -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);