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 |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/middleware/jwt.go b/middleware/jwt.go
index 9ca981c..907a1d0 100644
--- a/middleware/jwt.go
+++ b/middleware/jwt.go
@@ -79,3 +79,52 @@
 		c.Next()
 	}
 }
+
+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 == "" {
+			ctx.Fail(ecode.JWTEmpty)
+			c.Abort()
+			return
+		}
+		slices := strings.Split(token, " ")
+		if len(slices) == 2 {
+			token = slices[1]
+		}
+		j := utils.NewJWT()
+		// parseToken 瑙f瀽token鍖呭惈鐨勪俊鎭�
+		claims, err := j.ParseToken(token)
+		if err != nil {
+			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)
+		if CheckAuth(c.Request.URL.Path, token) {
+			c.Next()
+		} else {
+			ctx.Fail(ecode.JWTDisabled)
+			c.Abort()
+			return
+		}
+	}
+}

--
Gitblit v1.8.0