diff --git a/src/main/java/com/vibevault/security/JwtService.java b/src/main/java/com/vibevault/security/JwtService.java index 8460b14..6b4da09 100644 --- a/src/main/java/com/vibevault/security/JwtService.java +++ b/src/main/java/com/vibevault/security/JwtService.java @@ -97,12 +97,13 @@ public class JwtService { * 从 token 中提取所有声明 */ private Claims extractAllClaims(String token) { - return Jwts.parserBuilder() - .setSigningKey(getSigningKey()) - .build() - .parseClaimsJws(token) - .getBody(); - } + // 把 Jwts.builder() 改成 Jwts.parserBuilder()(解析Token用parserBuilder) + return Jwts.parser() + .setSigningKey(getSigningKey()) // 这里setSigningKey是parserBuilder的方法 + .build() + .parseClaimsJws(token) + .getBody(); +} /** * 获取签名密钥 @@ -115,21 +116,22 @@ public class JwtService { * 验证 token 签名和格式 */ public boolean validateToken(String token) { - try { - Jwts.parserBuilder() - .setSigningKey(getSigningKey()) - .build() - .parseClaimsJws(token); - return true; - } catch (SecurityException e) { - System.out.println("无效的 JWT 签名"); - } catch (MalformedJwtException e) { - System.out.println("无效的 JWT token"); - } catch (ExpiredJwtException e) { - System.out.println("JWT token 已过期"); - } catch (IllegalArgumentException e) { - System.out.println("JWT token 为空或格式错误"); - } - return false; + try { + // 把 Jwts.builder() 改成 Jwts.parserBuilder(),去掉强制类型转换 + Jwts.parser() + .setSigningKey(getSigningKey()) // 解析器才有setSigningKey方法 + .build() + .parseClaimsJws(token); // 验证Token + return true; + } catch (SecurityException e) { + System.out.println("无效的 JWT 签名"); // 去掉多余的x: + } catch (MalformedJwtException e) { + System.out.println("无效的 JWT token"); + } catch (ExpiredJwtException e) { + System.out.println("JWT token 已过期"); + } catch (IllegalArgumentException e) { + System.out.println("JWT token 为空或格式错误"); + } + return false; } } \ No newline at end of file