From 72675b17c49b53125a10da17e8ffdecdcff7c7de Mon Sep 17 00:00:00 2001
From: winkey <wwwgto@qq.com>
Date: 星期三, 02 四月 2025 15:13:39 +0800
Subject: [PATCH] 解决登录异常问题

---
 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java          |    4 +++-
 ruoyi-common/ruoyi-common-satoken/src/main/java/org/ruoyi/common/satoken/utils/LoginHelper.java |    8 ++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/ruoyi/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/ruoyi/common/satoken/utils/LoginHelper.java
index fd8f8f2..85a6698 100644
--- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/ruoyi/common/satoken/utils/LoginHelper.java
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/ruoyi/common/satoken/utils/LoginHelper.java
@@ -2,6 +2,7 @@
 
 import cn.dev33.satoken.context.SaHolder;
 import cn.dev33.satoken.context.model.SaStorage;
+import cn.dev33.satoken.session.SaSession;
 import cn.dev33.satoken.stp.SaLoginModel;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.convert.Convert;
@@ -73,8 +74,11 @@
         if (loginUser != null) {
             return loginUser;
         }
-        loginUser = (LoginUser) StpUtil.getTokenSession().get(LOGIN_USER_KEY);
-        SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser);
+        SaSession tokenSession = StpUtil.getTokenSession();
+        if (tokenSession != null) {
+            loginUser =  (LoginUser) tokenSession.get(LOGIN_USER_KEY);
+            SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser);
+        };
         return loginUser;
     }
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java
index 639feaf..017388c 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java
@@ -228,7 +228,9 @@
                 TenantHelper.clearDynamic();
             }
             StpUtil.logout();
-            recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGOUT, MessageUtils.message("user.logout.success"));
+            if (loginUser !=null) {
+                recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGOUT, MessageUtils.message("user.logout.success"));
+            }
         } catch (NotLoginException ignored) {
         }
     }

--
Gitblit v1.9.3