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) {
|
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 now = new Date();
|
||||||
Date expiryDate = new Date(now.getTime() + expiration);
|
Date expiryDate = new Date(now.getTime() + expiration);
|
||||||
|
|
||||||
@@ -35,13 +39,14 @@ public class JwtUtil {
|
|||||||
String token = Jwts.builder()
|
String token = Jwts.builder()
|
||||||
.setSubject(username)
|
.setSubject(username)
|
||||||
.claim("userId", userId)
|
.claim("userId", userId)
|
||||||
|
.claim("userType", userType)
|
||||||
.claim("keyVersion", jwtKeyService.getCurrentKeyVersion())
|
.claim("keyVersion", jwtKeyService.getCurrentKeyVersion())
|
||||||
.setIssuedAt(now)
|
.setIssuedAt(now)
|
||||||
.setExpiration(expiryDate)
|
.setExpiration(expiryDate)
|
||||||
.signWith(getSigningKey())
|
.signWith(getSigningKey())
|
||||||
.compact();
|
.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;
|
return token;
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -74,6 +79,11 @@ public class JwtUtil {
|
|||||||
return claims.get("userId", Long.class);
|
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) {
|
public boolean validateToken(String token) {
|
||||||
try {
|
try {
|
||||||
parseToken(token);
|
parseToken(token);
|
||||||
|
|||||||
Reference in New Issue
Block a user