From cca1941e48aefb7939b11166c928a2eb7a31550b Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期一, 02 三月 2020 17:19:05 +0800
Subject: [PATCH] fix swag
---
middlewares/auth/auth.go | 36 +++++++++++++++++++++++++++---------
1 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go
index 479d931..d2e365f 100644
--- a/middlewares/auth/auth.go
+++ b/middlewares/auth/auth.go
@@ -15,7 +15,7 @@
type Auth interface {
Check(c *gin.Context)bool
- User(c *gin.Context)interface{}
+ User(c *gin.Context)map[string]interface{}
Login(http *http.Request,w http.ResponseWriter,user map[string]interface{})interface{}
Logout(http *http.Request,w http.ResponseWriter) bool
}
@@ -35,7 +35,16 @@
outUserM[userId] = userId
}
-func removeOutUser(userId string) {
+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{
@@ -47,16 +56,25 @@
return func(c *gin.Context) {
urlPath := c.Request.URL.Path
- if strings.Contains(urlPath,"/data/api-v") && !strings.Contains(urlPath,"login"){
+ if strings.Contains(urlPath,"/data/api-") && !strings.Contains(urlPath,"login") && !strings.Contains(urlPath, "/data/api-v/license") && !strings.Contains(urlPath, "/data/api-v/info/"){
jwtDriver :=NewJwtAuthDriver()
if !jwtDriver.Check(c) {
util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍")
c.Abort()
+ return
}
- user := (*jwtDriver).User(c)
- loginM := user.(map[string]interface{})
- userId := loginM["id"].(string)
- removeOutUser(userId)
+ userM := (*jwtDriver).User(c)
+ if userM == nil {
+ util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍")
+ c.Abort()
+ return
+ }
+ userId := userM["id"].(string)
+ if OutUser(userId) {
+ util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍")
+ c.Abort()
+ return
+ }
c.Next()
} else {
c.Next()
@@ -65,5 +83,5 @@
}
func GetCurUser(c *gin.Context)map[string]interface{}{
- return (*GenerateAuthDriver()).User(c).(map[string]interface{})
-}
\ No newline at end of file
+ return (*GenerateAuthDriver()).User(c)
+}
--
Gitblit v1.8.0