xuzhiheng 4 年 前
コミット
a0f193c75c
2 ファイル変更19 行追加13 行削除
  1. 1 2
      main.go
  2. 18 11
      middleware/auth.go

+ 1 - 2
main.go

@@ -33,6 +33,7 @@ func main() {
 		db.GetSFISDB().Find(&users)
 		for _, user := range users {
 			utils.UserCaches.Map.Store(user.AppID, user)
+			lock.UserLockMap[user.AppID] = &sync.Mutex{}
 		}
 		global.Logger.Info("初始化用户缓存信息,", zap.Any("用户数量:", len(users)))
 
@@ -44,8 +45,6 @@ func main() {
 		}
 		global.Logger.Info("初始化产品缓存信息,", zap.Any("产品数量:", len(apis)))
 	}
-	lock.UserLockMap["sfGSVYRQMAAgkGBAUBJg4f"] = &sync.Mutex{}
-	lock.UserLockMap["sfPQRYRQMAAwcGBwYBCgcA"] = &sync.Mutex{}
 	//全局redis的使用?
 	redis.InitRedis(global.BaseConfig.RedisSession.RedisToken)
 	//启动web server

+ 18 - 11
middleware/auth.go

@@ -2,15 +2,18 @@ package middleware
 
 import (
 	"fmt"
-	"github.com/gin-gonic/gin"
-	"go.uber.org/zap"
 	"sfbase/global"
 	sutils "sfbase/utils"
+
+	// "sfis/model"
 	"sfis/model/response"
 	"sfis/utils"
 	"strconv"
 	"strings"
 	"time"
+
+	"github.com/gin-gonic/gin"
+	"go.uber.org/zap"
 )
 
 const TimestampExpireTime = 600 //单位秒,header里的时间戳超时时间 10分钟
@@ -29,13 +32,13 @@ func TokenAuth() gin.HandlerFunc {
 		requestUrl = strings.Split(requestUrl, "?")[0]
 		a := strings.Split(requestUrl, "/")
 		requestUrl = a[4]
-		/*if p, ok := utils.ApiUrlCache.Load(requestUrl); ok {
-			productID = p.(*model.Product).ID
-		} else {
-			response.FailWithDetailed(response.ParamError, nil, "url错误", context)
-			context.Abort()
-			return
-		}*/
+		// if p, ok := utils.ApiUrlCache.Load(requestUrl); ok {
+		// 	productID = p.(*model.Product).ID
+		// } else {
+		// 	response.FailWithDetailed(response.ParamError, nil, "url错误", context)
+		// 	context.Abort()
+		// 	return
+		// }
 		productID = 1000
 		token = context.Request.Header.Get("token")
 		timestamp = context.Request.Header.Get("timestamp")
@@ -53,7 +56,11 @@ func TokenAuth() gin.HandlerFunc {
 			return
 		}
 		now := time.Now().Unix()
-		if now-_timestamp > TimestampExpireTime {
+		TimestampExpire := now - _timestamp
+		if TimestampExpire < 0 {
+			TimestampExpire = -TimestampExpire
+		}
+		if TimestampExpire > TimestampExpireTime {
 			//token时间验证 十分钟
 			response.FailWithDetailed(response.TokenExpired, nil, "签名过期", context)
 			context.Abort()
@@ -68,8 +75,8 @@ func TokenAuth() gin.HandlerFunc {
 		/**
 		第一步:ip白名单校验
 		*/
+		requestIP = utils.GetIp(context.Request)
 		if ipWhiteList != "*" {
-			requestIP = utils.GetIp(context.Request)
 			if strings.Index(ipWhiteList, requestIP) < 0 {
 				response.FailWithDetailed(response.IpInvalid, nil, "ip不在白名单", context)
 				context.Abort()