浏览代码

改造登录流程

kobe6258 6 月之前
父节点
当前提交
6bd631336a
共有 1 个文件被更改,包括 14 次插入7 次删除
  1. 14 7
      middleware/auth_middleware.go

+ 14 - 7
middleware/auth_middleware.go

@@ -8,6 +8,7 @@ import (
 	"eta/eta_mini_ht_api/common/utils/redis"
 	stringUtils "eta/eta_mini_ht_api/common/utils/string"
 	"eta/eta_mini_ht_api/controllers"
+	userService "eta/eta_mini_ht_api/domian/user"
 	"eta/eta_mini_ht_api/service/user"
 	"fmt"
 	"github.com/beego/beego/v2/server/web"
@@ -89,13 +90,6 @@ func AuthMiddleware() web.FilterFunc {
 				_ = ctx.JSONResp(rep)
 				return
 			}
-			//校验redis中是否合法
-			redisToken := rd().GetString(redis.GenerateTokenKey(info.OpenId))
-			if redisToken != parts[1] {
-				logger.Error("token无效:用户token已刷新")
-				_ = ctx.JSONResp(tokenExpired())
-				return
-			}
 			//组装用户信息
 			var userInfo user.User
 			userInfo, err = user.GetUserByOpenId(info.OpenId)
@@ -104,6 +98,19 @@ func AuthMiddleware() web.FilterFunc {
 				_ = ctx.JSONResp(illegalUser())
 				return
 			}
+			//校验redis中是否合法
+			redisToken := rd().GetString(redis.GenerateTokenKey(info.OpenId))
+			if redisToken == "" {
+				logger.Error("token无效:token已失效")
+				_ = userService.UserLogout(userInfo.Id)
+				_ = ctx.JSONResp(tokenExpired())
+				return
+			}
+			if redisToken != parts[1] {
+				logger.Error("token无效:用户token已刷新")
+				_ = ctx.JSONResp(tokenExpired())
+				return
+			}
 			if needCheckLoginStatus(path) {
 				if info.TokenType != jwt.AccessToken || info.Mobile == "-" || info.Mobile == "" {
 					logger.Error("token信息异常,当前token类型为:%v", jwt.GuestToken)