From 2bd2068c999cda5bda8c0787ed0dcaac6cb7afdb Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@iotlink.com> Date: 星期四, 31 十月 2019 13:27:46 +0800 Subject: [PATCH] feat: add system reboot api --- middlewares/auth/auth.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go index fe7fe5f..2de927d 100644 --- a/middlewares/auth/auth.go +++ b/middlewares/auth/auth.go @@ -1,9 +1,11 @@ package auth import ( + "fmt" "github.com/gin-gonic/gin" "net/http" "strings" + "sync" "webserver/extend/code" "webserver/extend/util" ) @@ -25,6 +27,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 +63,19 @@ util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍") c.Abort() } + user := (*jwtDriver).User(c) + fmt.Println("AuthHandler user:",user) + if user == nil { + util.ResponseFormat(c,code.TokenNotFound,"灏氭湭鐧诲綍锛岃鐧诲綍") + c.Abort() + return + } + 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