From c4713a63f88a72a4aaabaa70fe4a7ea08262fa60 Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期二, 15 四月 2025 16:09:17 +0800
Subject: [PATCH] 优化

---
 docs/UserController_API_Test.md                          |  285 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/weiwojc/controller/UserController.java |    5 
 2 files changed, 288 insertions(+), 2 deletions(-)

diff --git a/docs/UserController_API_Test.md b/docs/UserController_API_Test.md
new file mode 100644
index 0000000..ec28246
--- /dev/null
+++ b/docs/UserController_API_Test.md
@@ -0,0 +1,285 @@
+# UserController 鎺ュ彛娴嬭瘯鏂囨。
+
+## 1. 鐢ㄦ埛娉ㄥ唽鎺ュ彛
+
+### 鎺ュ彛淇℃伅
+- 璇锋眰璺緞锛歚/api/users/register`
+- 璇锋眰鏂规硶锛歅OST
+- 璇锋眰浣撶被鍨嬶細application/json
+
+### 璇锋眰鍙傛暟
+```json
+{
+    "nickname": "鐢ㄦ埛鏄电О",
+    "accountName": "璐﹀彿鍚�",
+    "password": "瀵嗙爜"
+}
+```
+
+### 娴嬭瘯鐢ㄤ緥
+
+#### 鎴愬姛鍦烘櫙
+1. 姝e父娉ㄥ唽
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "nickname": "娴嬭瘯鐢ㄦ埛",
+         "accountName": "test123",
+         "password": "password123"
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 200,
+         "message": "娉ㄥ唽鎴愬姛",
+         "data": {
+             "id": 1,
+             "nickname": "娴嬭瘯鐢ㄦ埛",
+             "accountName": "test123"
+         }
+     }
+     ```
+
+#### 澶辫触鍦烘櫙
+1. 璐﹀彿鍚嶅凡瀛樺湪
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "nickname": "娴嬭瘯鐢ㄦ埛",
+         "accountName": "existing_user",
+         "password": "password123"
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 400,
+         "message": "璐﹀彿鍚嶅凡瀛樺湪"
+     }
+     ```
+
+2. 璐﹀彿鍚嶆牸寮忛敊璇�
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "nickname": "娴嬭瘯鐢ㄦ埛",
+         "accountName": "ab",  // 灏戜簬4浣�
+         "password": "password123"
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 400,
+         "message": "璐﹀彿鍚嶅繀椤绘槸4-16浣嶅瓧姣嶃�佹暟瀛楁垨涓嬪垝绾�"
+     }
+     ```
+
+3. 瀵嗙爜鏍煎紡閿欒
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "nickname": "娴嬭瘯鐢ㄦ埛",
+         "accountName": "test123",
+         "password": "123"  // 灏戜簬6浣�
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 400,
+         "message": "瀵嗙爜蹇呴』鏄�6-16浣嶅瓧姣嶃�佹暟瀛楁垨涓嬪垝绾�"
+     }
+     ```
+
+4. 蹇呭~瀛楁涓虹┖
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "nickname": "",
+         "accountName": "",
+         "password": ""
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 400,
+         "message": "鐢ㄦ埛鍚嶄笉鑳戒负绌�"
+     }
+     ```
+
+## 2. 鐢ㄦ埛鐧诲綍鎺ュ彛
+
+### 鎺ュ彛淇℃伅
+- 璇锋眰璺緞锛歚/api/users/login`
+- 璇锋眰鏂规硶锛歅OST
+- 璇锋眰浣撶被鍨嬶細application/json
+
+### 璇锋眰鍙傛暟
+```json
+{
+    "accountName": "璐﹀彿鍚�",
+    "password": "瀵嗙爜"
+}
+```
+
+### 娴嬭瘯鐢ㄤ緥
+
+#### 鎴愬姛鍦烘櫙
+1. 姝e父鐧诲綍
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "accountName": "test123",
+         "password": "password123"
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 200,
+         "message": "鐧诲綍鎴愬姛",
+         "data": "eyJhbGciOiJIUzI1NiJ9..."  // JWT token
+     }
+     ```
+
+#### 澶辫触鍦烘櫙
+1. 璐﹀彿涓嶅瓨鍦�
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "accountName": "nonexistent",
+         "password": "password123"
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 400,
+         "message": "璐﹀彿涓嶅瓨鍦�"
+     }
+     ```
+
+2. 瀵嗙爜閿欒
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "accountName": "test123",
+         "password": "wrong_password"
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 400,
+         "message": "瀵嗙爜閿欒"
+     }
+     ```
+
+3. 蹇呭~瀛楁涓虹┖
+   - 璇锋眰鍙傛暟锛�
+     ```json
+     {
+         "accountName": "",
+         "password": ""
+     }
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 400,
+         "message": "璐﹀彿鍚嶄笉鑳戒负绌�"
+     }
+     ```
+
+## 3. 鑾峰彇鐢ㄦ埛淇℃伅鎺ュ彛
+
+### 鎺ュ彛淇℃伅
+- 璇锋眰璺緞锛歚/api/users/info`
+- 璇锋眰鏂规硶锛欸ET
+- 璇锋眰澶达細闇�瑕佹惡甯� token
+
+### 娴嬭瘯鐢ㄤ緥
+
+#### 鎴愬姛鍦烘櫙
+1. 姝e父鑾峰彇鐢ㄦ埛淇℃伅
+   - 璇锋眰澶达細
+     ```
+     token: eyJhbGciOiJIUzI1NiJ9...
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 200,
+         "data": {
+             "id": 1,
+             "nickname": "娴嬭瘯鐢ㄦ埛",
+             "accountName": "test123"
+         }
+     }
+     ```
+
+#### 澶辫触鍦烘櫙
+1. 鏈惡甯� token
+   - 璇锋眰澶达細鏃� token
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 401,
+         "message": "鏈櫥褰曟垨token鏃犳晥"
+     }
+     ```
+
+2. token 鏃犳晥
+   - 璇锋眰澶达細
+     ```
+     token: invalid_token
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 401,
+         "message": "token鏃犳晥鎴栧凡杩囨湡"
+     }
+     ```
+
+3. token 宸茶繃鏈�
+   - 璇锋眰澶达細
+     ```
+     token: expired_token
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 401,
+         "message": "token鏃犳晥鎴栧凡杩囨湡"
+     }
+     ```
+
+4. 鐢ㄦ埛涓嶅瓨鍦�
+   - 璇锋眰澶达細
+     ```
+     token: valid_token_for_nonexistent_user
+     ```
+   - 棰勬湡鍝嶅簲锛�
+     ```json
+     {
+         "code": 400,
+         "message": "鐢ㄦ埛涓嶅瓨鍦�"
+     }
+     ```
+
+## 娴嬭瘯宸ュ叿寤鸿
+1. Postman
+2. Swagger UI
+3. JMeter锛堢敤浜庢�ц兘娴嬭瘯锛�
+
+## 娉ㄦ剰浜嬮」
+1. 鎵�鏈夋帴鍙i兘鏀寔璺ㄥ煙璇锋眰
+2. 娉ㄥ唽鍜岀櫥褰曟帴鍙d娇鐢� `@Valid` 娉ㄨВ杩涜鍙傛暟楠岃瘉
+3. 鐢ㄦ埛淇℃伅鎺ュ彛闇�瑕佹湁鏁堢殑 JWT token
+4. 瀵嗙爜鍦ㄤ紶杈撹繃绋嬩腑搴旇浣跨敤 HTTPS 鍔犲瘑
+5. 寤鸿鍦ㄦ祴璇曠幆澧冧腑浣跨敤娴嬭瘯鏁版嵁搴�
+6. 娴嬭瘯鏃舵敞鎰忔竻鐞嗘祴璇曟暟鎹紝閬垮厤褰卞搷鍏朵粬娴嬭瘯鐢ㄤ緥 
\ No newline at end of file
diff --git a/src/main/java/com/weiwojc/controller/UserController.java b/src/main/java/com/weiwojc/controller/UserController.java
index 40cb2fb..7a63193 100644
--- a/src/main/java/com/weiwojc/controller/UserController.java
+++ b/src/main/java/com/weiwojc/controller/UserController.java
@@ -39,11 +39,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