Pārlūkot izejas kodu

新增会话ID用于消息推送

hubin 9 mēneši atpakaļ
vecāks
revīzija
4375532f1b

+ 17 - 5
aizuda-service-parent/src/main/java/com/aizuda/service/web/UserSession.java

@@ -13,10 +13,11 @@ import jakarta.servlet.http.HttpServletRequest;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Map;
 import java.util.Objects;
 
 /**
- * 爱组搭 http://aizuda.com
+ * <a href="http://aizuda.com">爱组搭</a>
  * ----------------------------------------
  * 用户会话信息
  *
@@ -26,7 +27,11 @@ import java.util.Objects;
 @Getter
 @Setter
 public class UserSession {
+    // 会话ID
+    private String sid;
+    // 用户ID
     private String userId;
+    // 用户名
     private String username;
 
     public UserSession(String id, String issuer) {
@@ -48,11 +53,18 @@ public class UserSession {
 
     public static UserSession getLoginInfo(HttpServletRequest request, boolean allowNull) {
         SSOToken ssoToken = getSSOToken(request);
-        if (allowNull && null == ssoToken) {
-            return null;
+        if (null == ssoToken) {
+            if (allowNull) {
+                return null;
+            }
+            ApiAssert.fail("未登录");
+        }
+        UserSession userSession = new UserSession(ssoToken.getId(), ssoToken.getIssuer());
+        Map<String, Object> data = ssoToken.getData();
+        if (null != data) {
+            userSession.setSid((String) data.get("sid"));
         }
-        ApiAssert.fail(null == ssoToken, "未登录");
-        return new UserSession(ssoToken.getId(), ssoToken.getIssuer());
+        return userSession;
     }
 
     /**