Kaynağa Gözat

修改游客鉴权BUG

zhou.xiaoning 5 yıl önce
ebeveyn
işleme
ecdb2393d5
2 değiştirilmiş dosya ile 58 ekleme ve 48 silme
  1. 4 4
      config/config.xml
  2. 54 44
      token/token.go

+ 4 - 4
config/config.xml

@@ -16,12 +16,12 @@
         <DbAddress value="192.168.31.117"/>
         <DbName    value="orcl"/>
         <DbPort    value="1521"/>
-        <DbUser    value="mtp2_test82"/>
+        <DbUser    value="mtp2_test104"/>
         <DbPwd     value="muchinfo"/>
     </DbSetting>
 
     <RedisSetting>
-        <Address   value="192.168.30.182"/>
+        <Address   value="192.168.31.104"/>
         <Port      value="5007"/>
         <Timeout   value="3"/>
         <ConnNum   value="1"/>
@@ -30,12 +30,12 @@
     </RedisSetting>
 
     <MqSetting>
-        <Url       value="amqp://guest:guest@192.168.30.182:5020/test"/>
+        <Url       value="amqp://guest:guest@192.168.31.104:5020/test"/>
         <Exchange  value="entry"/>
     </MqSetting>
 
     <MongoDBSetting>
-        <HostName   value="192.168.30.182"/>
+        <HostName   value="192.168.31.104"/>
         <Port       value="5025"/>
         <DBName     value="HistoryQuote"/>
         <Username   value="quote_test01"/>

+ 54 - 44
token/token.go

@@ -3,7 +3,6 @@ package token
 import (
 	"errors"
 	"fmt"
-	"mtp2_if/config"
 	"mtp2_if/global/e"
 	"mtp2_if/rediscli"
 	"net/http"
@@ -35,10 +34,10 @@ func CheckToken(loginid string, token string) error {
 // Auth Token校验中间件
 func Auth() gin.HandlerFunc {
 	return func(c *gin.Context) {
-		if config.SerCfg.GetDebugMode() {
-			c.Next()
-			return
-		}
+		// if config.SerCfg.GetDebugMode() {
+		// 	c.Next()
+		// 	return
+		// }
 
 		var code int
 		var data interface{}
@@ -86,45 +85,7 @@ func AuthByHsby() gin.HandlerFunc {
 		userID := c.Query("userID")
 		userIDs := c.Query("userIDs")
 		if len(accountID) != 0 || len(accountIDs) != 0 || len(userID) != 0 || len(userIDs) != 0 {
-			if config.SerCfg.GetDebugMode() {
-				c.Next()
-				return
-			}
-
-			var code int
-			var data interface{}
-
-			code = e.SUCCESS
-			token := c.GetHeader("Authorization")
-			if token == "" {
-				// Token缺失
-				code = e.ERROR_AUTH_CHECK_TOKEN_MISSING
-			} else {
-				// 获取loginid
-				s := strings.Split(token, "_")
-				loginid := s[0]
-				if err := CheckToken(loginid, token); err != nil {
-					// Token错误
-					code = e.ERROR_AUTH_CHECK_TOKEN_FAIL
-				}
-			}
-
-			// Token检验失败
-			if code != e.SUCCESS {
-				c.JSON(http.StatusUnauthorized, gin.H{
-					"code": code,
-					"msg":  e.GetMsg(code),
-					"data": data,
-				})
-
-				c.Abort()
-				return
-			}
-
-			// FIXME: - 针对POST接口,应判断传入TOKEN对应的用户是否正确(比如判断UserID或AccountID是否对得上等),后期处理
-
-			// Token检验成功
-			c.Next()
+			realToken(c)
 			return
 		}
 
@@ -137,6 +98,12 @@ func AuthByHsby() gin.HandlerFunc {
 			// Token缺失
 			code = e.ERROR_AUTH_CHECK_TOKEN_MISSING
 		} else {
+			// Token带下划线的走正常鉴权
+			if strings.Contains(token, "_") {
+				realToken(c)
+				return
+			}
+
 			if token != TouristToken {
 				// Token错误
 				code = e.ERROR_AUTH_CHECK_TOKEN_FAIL
@@ -159,3 +126,46 @@ func AuthByHsby() gin.HandlerFunc {
 		c.Next()
 	}
 }
+
+func realToken(c *gin.Context) {
+	// if config.SerCfg.GetDebugMode() {
+	// 	c.Next()
+	// 	return
+	// }
+
+	var code int
+	var data interface{}
+
+	code = e.SUCCESS
+	token := c.GetHeader("Authorization")
+	if token == "" {
+		// Token缺失
+		code = e.ERROR_AUTH_CHECK_TOKEN_MISSING
+	} else {
+		// 获取loginid
+		s := strings.Split(token, "_")
+		loginid := s[0]
+		if err := CheckToken(loginid, token); err != nil {
+			// Token错误
+			code = e.ERROR_AUTH_CHECK_TOKEN_FAIL
+		}
+	}
+
+	// Token检验失败
+	if code != e.SUCCESS {
+		c.JSON(http.StatusUnauthorized, gin.H{
+			"code": code,
+			"msg":  e.GetMsg(code),
+			"data": data,
+		})
+
+		c.Abort()
+		return
+	}
+
+	// FIXME: - 针对POST接口,应判断传入TOKEN对应的用户是否正确(比如判断UserID或AccountID是否对得上等),后期处理
+
+	// Token检验成功
+	c.Next()
+	return
+}