feat(auth): Gateway JwtUtil 增加 userType 解析支持
- 新增三参数 generateToken 方法,支持传入 userType - 旧方法默认 userType=ADMIN,保持向后兼容 - 新增 getUserTypeFromToken 方法解析 Token 中的 userType
This commit is contained in:
+11
-1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user