From e29f1ded0f7381c00ef75f72cf9ecda52c50eb3e Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期三, 06 十一月 2019 14:48:57 +0800 Subject: [PATCH] fix --- middlewares/auth/auth.go | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go index def56c1..6d80437 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 } @@ -33,6 +33,15 @@ 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) { @@ -53,6 +62,17 @@ util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍") c.Abort() } + 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() + } c.Next() } else { c.Next() @@ -61,5 +81,5 @@ } func GetCurUser(c *gin.Context)map[string]interface{}{ - return (*GenerateAuthDriver()).User(c).(map[string]interface{}) + return (*GenerateAuthDriver()).User(c) } \ No newline at end of file -- Gitblit v1.8.0