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