|
|
@@ -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
|
|
|
+}
|