From f903c085b8adde79c3aeca453a9b935adb1ef033 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期六, 26 十月 2019 14:16:58 +0800 Subject: [PATCH] fix uout --- middlewares/auth/auth.go | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go index fe7fe5f..61e40ca 100644 --- a/middlewares/auth/auth.go +++ b/middlewares/auth/auth.go @@ -4,6 +4,7 @@ "github.com/gin-gonic/gin" "net/http" "strings" + "sync" "webserver/extend/code" "webserver/extend/util" ) @@ -25,6 +26,32 @@ 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 @@ -35,6 +62,13 @@ 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 { c.Next() -- Gitblit v1.8.0