From a284792b8d8555c8a60b2e226bf36f91311d7147 Mon Sep 17 00:00:00 2001 From: hongjli <3117313295@qq.com> Date: 星期三, 16 四月 2025 10:28:00 +0800 Subject: [PATCH] 优化 --- src/main/java/com/weiwojc/controller/UserController.java | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/weiwojc/controller/UserController.java b/src/main/java/com/weiwojc/controller/UserController.java index 40cb2fb..9e12e14 100644 --- a/src/main/java/com/weiwojc/controller/UserController.java +++ b/src/main/java/com/weiwojc/controller/UserController.java @@ -6,6 +6,7 @@ import com.weiwojc.model.entity.User; import com.weiwojc.service.UserService; import com.weiwojc.utils.JwtUtils; +import com.weiwojc.utils.TokenBlacklistManager; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -18,6 +19,7 @@ private final UserService userService; private final JwtUtils jwtUtils; + private final TokenBlacklistManager tokenBlacklistManager; @PostMapping("/register") public Result<User> register(@Valid @RequestBody UserRegisterDTO registerDTO) { @@ -31,6 +33,23 @@ return Result.success("鐧诲綍鎴愬姛", token); } + @PostMapping("/logout") + public Result<String> logout(HttpServletRequest request) { + String token = request.getHeader("token"); + if (token == null || token.isEmpty()) { + return Result.error("鏈櫥褰曠姸鎬�"); + } + + // 楠岃瘉token鏄惁鏈夋晥 + if (!jwtUtils.validateToken(token)) { + return Result.unauthorized("token鏃犳晥鎴栧凡杩囨湡"); + } + + // 灏唗oken鍔犲叆榛戝悕鍗� + tokenBlacklistManager.addToBlacklist(token); + return Result.success("閫�鍑虹櫥褰曟垚鍔�"); + } + @GetMapping("/info") public Result<User> getUserInfo(HttpServletRequest request) { String token = request.getHeader("token"); @@ -39,11 +58,12 @@ return Result.unauthorized("鏈櫥褰曟垨token鏃犳晥"); } - Long userId = jwtUtils.getUserIdFromToken(token); - if (userId == null) { + // 楠岃瘉token鏄惁鏈夋晥 + if (!jwtUtils.validateToken(token)) { return Result.unauthorized("token鏃犳晥鎴栧凡杩囨湡"); } + Long userId = jwtUtils.getUserIdFromToken(token); User user = userService.getUserInfo(userId); if (user == null) { return Result.error("鐢ㄦ埛涓嶅瓨鍦�"); -- Gitblit v1.9.3