From b377215cb2dc76b33aaa346119b0c32b028034c7 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期六, 26 十月 2019 17:22:15 +0800
Subject: [PATCH] test log
---
middlewares/auth/auth.go | 75 ++++++++++++++++++++-----------------
1 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go
index 831ba8a..61e40ca 100644
--- a/middlewares/auth/auth.go
+++ b/middlewares/auth/auth.go
@@ -3,10 +3,10 @@
import (
"github.com/gin-gonic/gin"
"net/http"
- "regexp"
"strings"
- "webserver/extend/config"
- "webserver/extend/logger"
+ "sync"
+ "webserver/extend/code"
+ "webserver/extend/util"
)
const (
@@ -26,43 +26,50 @@
return &authDriver
}
+var outUserM = make(map[string]string,0)
+var lock sync.RWMutex
+
+func SetOutUser(userId string) {
+ lock.Lock()
+ defer lock.Unlock()
+ outUserM[userId] = userId
+}
+
+func OutUser(userId string) bool {
+ lock.Lock()
+ defer lock.Unlock()
+ if _,ok := outUserM[userId];ok{
+ return true
+ }
+ return false
+}
+
+func RemoveOutUser(userId string) {
+ lock.Lock()
+ defer lock.Unlock()
+ if _,ok := outUserM[userId];ok{
+ delete(outUserM,userId)
+ }
+}
+
func AuthHandler() gin.HandlerFunc {
return func(c *gin.Context) {
urlPath := c.Request.URL.Path
if strings.Contains(urlPath,"/data/api-v") && !strings.Contains(urlPath,"login"){
- //jwtDriver :=NewJwtAuthDriver()
- //if !jwtDriver.Check(c) {
- // util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍")
- // c.Abort()
- //}
+ jwtDriver :=NewJwtAuthDriver()
+ if !jwtDriver.Check(c) {
+ util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍")
+ c.Abort()
+ }
+ user := (*jwtDriver).User(c)
+ loginM := user.(map[string]interface{})
+ userId := loginM["id"].(string)
+ if OutUser(userId) {
+ util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍")
+ c.Abort()
+ }
c.Next()
- } else if strings.HasPrefix(urlPath,"/httpImage") {
- host := c.Request.Host
- logger.Debug("host:", host)
-
- imgUrl := config.Server.ImageUrl
-
- domain := config.Server.PublicDomain
- domainReg := regexp.MustCompile(``+domain+``)
- if domainReg.MatchString(host) {//鍩熷悕璁块棶
- imgUrl = domain
- }
-
- urlPath = strings.Replace(urlPath, "/httpImage", "", -1)
- idx := strings.Index(urlPath, ":")
- tmpPath := urlPath
- if idx >-1 {//璺緞涓寘鍚湁绔彛,鍙栫鍙d互鍚庤矾寰�
- tmpPath = urlPath[idx:]
- imgIndx := strings.LastIndex(imgUrl, ":")
- if imgIndx > -1 {
- imgUrl = imgUrl[:imgIndx]
- }
- }
- logger.Debug("imgUrl+tmpPath:", imgUrl+tmpPath)
- c.Header("Access-Control-Allow-Origin","*")
- c.Redirect(http.StatusMovedPermanently, imgUrl+tmpPath)
- return
} else {
c.Next()
}
--
Gitblit v1.8.0