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 | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/weiwojc/controller/UserController.java b/src/main/java/com/weiwojc/controller/UserController.java index 7a63193..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"); -- Gitblit v1.9.3