From 1572f45e72cc0fa15c029f9ee2a08474104435e6 Mon Sep 17 00:00:00 2001
From: selfcheer <selfcheer@gmail.com>
Date: 星期五, 19 七月 2024 00:48:43 +0800
Subject: [PATCH] 采购单产品列表去掉过滤重复产品的逻辑
---
middleware/jwt.go | 68 +++++++---------------------------
1 files changed, 14 insertions(+), 54 deletions(-)
diff --git a/middleware/jwt.go b/middleware/jwt.go
index 4db632f..42ce6e0 100644
--- a/middleware/jwt.go
+++ b/middleware/jwt.go
@@ -1,78 +1,38 @@
package middleware
import (
- "errors"
- "github.com/golang-jwt/jwt/v4"
- "strconv"
- "time"
-
- "srm/utils"
-
- "srm/global"
- "srm/model/common/response"
- "srm/model/system"
- "srm/service"
-
"github.com/gin-gonic/gin"
- "go.uber.org/zap"
+ "srm/pkg/contextx"
+ "srm/pkg/ecode"
+ "strings"
)
-
-var jwtService = service.ServiceGroupApp.SystemServiceGroup.JwtService
func JWTAuth() gin.HandlerFunc {
return func(c *gin.Context) {
- // 鎴戜滑杩欓噷jwt閴存潈鍙栧ご閮ㄤ俊鎭� x-token 鐧诲綍鏃跺洖杩斿洖token淇℃伅 杩欓噷鍓嶇闇�瑕佹妸token瀛樺偍鍒癱ookie鎴栬�呮湰鍦發ocalStorage涓� 涓嶈繃闇�瑕佽窡鍚庣鍗忓晢杩囨湡鏃堕棿 鍙互绾﹀畾鍒锋柊浠ょ墝鎴栬�呴噸鏂扮櫥褰�
- token := c.Request.Header.Get("x-token")
+ ctx := new(contextx.Context).SetCtx(c)
+ // 鎴戜滑杩欓噷jwt閴存潈鍙栧ご閮ㄤ俊鎭� Authorization 鐧诲綍鏃跺洖杩斿洖token淇℃伅 杩欓噷鍓嶇闇�瑕佹妸token瀛樺偍鍒癱ookie鎴栬�呮湰鍦發ocalStorage涓� 涓嶈繃闇�瑕佽窡鍚庣鍗忓晢杩囨湡鏃堕棿 鍙互绾﹀畾鍒锋柊浠ょ墝鎴栬�呴噸鏂扮櫥褰�
+ token := c.Request.Header.Get("Authorization")
if token == "" {
- response.FailWithDetailed(gin.H{"reload": true}, "鏈櫥褰曟垨闈炴硶璁块棶", c)
+ ctx.Fail(ecode.JWTEmpty)
c.Abort()
return
}
- if jwtService.IsBlacklist(token) {
- response.FailWithDetailed(gin.H{"reload": true}, "鎮ㄧ殑甯愭埛寮傚湴鐧婚檰鎴栦护鐗屽け鏁�", c)
- c.Abort()
- return
+ slices := strings.Split(token, " ")
+ if len(slices) == 2 {
+ token = slices[1]
}
- j := utils.NewJWT()
+ j := NewJWT()
// parseToken 瑙f瀽token鍖呭惈鐨勪俊鎭�
claims, err := j.ParseToken(token)
if err != nil {
- if errors.Is(err, utils.TokenExpired) {
- response.FailWithDetailed(gin.H{"reload": true}, "鎺堟潈宸茶繃鏈�", c)
- c.Abort()
+ if err == TokenExpired {
+ c.Next()
return
}
- response.FailWithDetailed(gin.H{"reload": true}, err.Error(), c)
- c.Abort()
+ c.Next()
return
}
- // 宸茬櫥褰曠敤鎴疯绠$悊鍛樼鐢� 闇�瑕佷娇璇ョ敤鎴风殑jwt澶辨晥 姝ゅ姣旇緝娑堣�楁�ц兘 濡傛灉闇�瑕� 璇疯嚜琛屾墦寮�
- // 鐢ㄦ埛琚垹闄ょ殑閫昏緫 闇�瑕佷紭鍖� 姝ゅ姣旇緝娑堣�楁�ц兘 濡傛灉闇�瑕� 璇疯嚜琛屾墦寮�
-
- //if user, err := userService.FindUserByUuid(claims.UUID.String()); err != nil || user.Enable == 2 {
- // _ = jwtService.JsonInBlacklist(system.JwtBlacklist{Jwt: token})
- // response.FailWithDetailed(gin.H{"reload": true}, err.Error(), c)
- // c.Abort()
- //}
- if claims.ExpiresAt.Unix()-time.Now().Unix() < claims.BufferTime {
- dr, _ := utils.ParseDuration(global.GVA_CONFIG.JWT.ExpiresTime)
- claims.ExpiresAt = jwt.NewNumericDate(time.Now().Add(dr))
- newToken, _ := j.CreateTokenByOldToken(token, *claims)
- newClaims, _ := j.ParseToken(newToken)
- c.Header("new-token", newToken)
- c.Header("new-expires-at", strconv.FormatInt(newClaims.ExpiresAt.Unix(), 10))
- if global.GVA_CONFIG.System.UseMultipoint {
- RedisJwtToken, err := jwtService.GetRedisJWT(newClaims.Username)
- if err != nil {
- global.GVA_LOG.Error("get redis jwt failed", zap.Error(err))
- } else { // 褰撲箣鍓嶇殑鍙栨垚鍔熸椂鎵嶈繘琛屾媺榛戞搷浣�
- _ = jwtService.JsonInBlacklist(system.JwtBlacklist{Jwt: RedisJwtToken})
- }
- // 鏃犺濡備綍閮借璁板綍褰撳墠鐨勬椿璺冪姸鎬�
- _ = jwtService.SetRedisJWT(newToken, newClaims.Username)
- }
- }
c.Set("claims", claims)
c.Next()
}
--
Gitblit v1.8.0