From eb2c3a8890a0e9695c0cd2bc3b3dc310c6fbcfa9 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期六, 26 十月 2019 11:28:23 +0800 Subject: [PATCH] fix user timeout --- middlewares/auth/auth.go | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go index fe7fe5f..479d931 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,23 @@ 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 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 +53,10 @@ util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍") c.Abort() } + user := (*jwtDriver).User(c) + loginM := user.(map[string]interface{}) + userId := loginM["id"].(string) + removeOutUser(userId) c.Next() } else { c.Next() -- Gitblit v1.8.0