From e816946bb6e8f6b88045e565a3368c2367e7158a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 15 Jul 2025 14:09:33 +0800
Subject: [PATCH] 1

---
 websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java |   27 +++++++++++++--------------
 1 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java b/websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java
index 95bf67f..9638232 100644
--- a/websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java
+++ b/websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.example.pojo.User;
 import org.example.server.UserService;
 import org.example.server.impl.UserServiceImpl;
@@ -27,8 +28,15 @@
             throws Exception {
 
         // 假设登录状态信息保存在 session 中,这里简单示例,实际项目中可能会有自己的登录状态判断逻辑
-        String token = request.getHeader("token");
-        if(null == token){
+        String token = null;
+        // 如果是 OPTIONS 请求,我们就让他通过,不管他
+        if (request.getMethod().equals("OPTIONS")) {
+            response.setStatus(HttpServletResponse.SC_OK);
+            return true;
+        }else {
+            token = request.getHeader("token");
+        }
+        if(StringUtils.isEmpty(token)){
             // 未登录,返回未授权错误码或重定向到登录页
             response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);  // 返回 401 未授权状态码
             response.setCharacterEncoding("UTF-8");
@@ -36,24 +44,15 @@
             return false;
         }
         User user = JwtUtil.verify(token);
-        if(null == user){
+        String s = RedisUtil.get(user.getId().toString());
+        if(StringUtils.isEmpty(s) && s.equals(token)){
             // 未登录,返回未授权错误码或重定向到登录页
             response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);  // 返回 401 未授权状态码
             response.setCharacterEncoding("UTF-8");
             response.getWriter().write("请登录");
             return false;
         }
-
-        if (user.getIsRoot() == 1) {
-            // 已登录,允许请求继续
-            return true;
-        } else {
-            // 未登录,返回未授权错误码或重定向到登录页
-            response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);  // 返回 401 未授权状态码
-            response.setCharacterEncoding("UTF-8");
-            response.getWriter().write("请登录");
-            return false;
-        }
+        return true;
     }
 
     @Override

--
Gitblit v1.9.3