From 530fed8ec225453572d57b15c200ab062c335457 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 01 十一月 2023 19:20:21 +0800
Subject: [PATCH] 公海member_id使用0

---
 middleware/jwt.go |   34 +++++++++++++++++++++++++++-------
 1 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/middleware/jwt.go b/middleware/jwt.go
index 673087c..907a1d0 100644
--- a/middleware/jwt.go
+++ b/middleware/jwt.go
@@ -82,10 +82,12 @@
 
 func JWTAuth2() gin.HandlerFunc {
 	return func(c *gin.Context) {
+		ctx := new(contextx.Context).SetCtx(c)
 		// 鎴戜滑杩欓噷jwt閴存潈鍙栧ご閮ㄤ俊鎭� Authorization 鐧诲綍鏃跺洖杩斿洖token淇℃伅 杩欓噷鍓嶇闇�瑕佹妸token瀛樺偍鍒癱ookie鎴栬�呮湰鍦發ocalStorage涓� 涓嶈繃闇�瑕佽窡鍚庣鍗忓晢杩囨湡鏃堕棿 鍙互绾﹀畾鍒锋柊浠ょ墝鎴栬�呴噸鏂扮櫥褰�
 		token := c.Request.Header.Get("Authorization")
 		if token == "" {
-			c.Next()
+			ctx.Fail(ecode.JWTEmpty)
+			c.Abort()
 			return
 		}
 		slices := strings.Split(token, " ")
@@ -96,15 +98,33 @@
 		// parseToken 瑙f瀽token鍖呭惈鐨勪俊鎭�
 		claims, err := j.ParseToken(token)
 		if err != nil {
-			if err == utils.TokenExpired {
-				c.Next()
-				return
-			}
-			c.Next()
+			ctx.Fail(ecode.JWTDisabled)
+			c.Abort()
+			return
+		}
+		userInfo := service.GetUserBaseCache(claims.UserId)
+		if userInfo == nil {
+			SyncUserInfo([]string{claims.UserId})
+			userInfo = service.GetUserBaseCache(claims.UserId)
+		}
+		if userInfo == nil {
+			ctx.Fail(ecode.JWTDisabled)
+			c.Abort()
 			return
 		}
 
+		SetActiveTime(claims.UserId)
+
+		claims.CrmUserId = userInfo.UserId
+		claims.NickName = userInfo.NickName
+		claims.SubUserIds = userInfo.SubUserIds
 		c.Set("claims", claims)
-		c.Next()
+		if CheckAuth(c.Request.URL.Path, token) {
+			c.Next()
+		} else {
+			ctx.Fail(ecode.JWTDisabled)
+			c.Abort()
+			return
+		}
 	}
 }

--
Gitblit v1.8.0