Roc 3 months ago
parent
commit
e77ff74b63
1 changed files with 20 additions and 33 deletions
  1. 20 33
      controllers/base_auth.go

+ 20 - 33
controllers/base_auth.go

@@ -494,29 +494,13 @@ func (c *BaseAuthController) Prepare() {
 		c.Lang = lang
 	}
 
-	isOk, token, resp := checkToken(c)
+	isOk, session, resp := checkToken(c)
 	if !isOk {
 		_ = c.JSON(resp, false, false)
 		c.StopRun()
 		return
 	}
 
-	//accountStr := authorizationArr[1]
-	//accountArr := strings.Split(accountStr, "=")
-	//account := accountArr[1]
-
-	session, err := system.GetSysSessionByToken(token)
-	//fmt.Println("session:", session)
-	if err != nil {
-		if utils.IsErrNoRow(err) {
-			c.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "Token 信息已变更:Token: " + token}, false, false)
-			c.StopRun()
-			return
-		}
-		c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "获取用户信息异常,Eerr:" + err.Error()}, false, false)
-		c.StopRun()
-		return
-	}
 	if session == nil {
 		c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "sesson is empty "}, false, false)
 		c.StopRun()
@@ -524,17 +508,7 @@ func (c *BaseAuthController) Prepare() {
 	}
 	//校验token是否合法
 	// JWT校验Token和Account
-	account := utils.MD5(session.UserName)
-	if !utils.CheckToken(account, token) {
-		c.JSON(models.BaseResponse{Ret: 408, Msg: "鉴权失败,请重新登录!", ErrMsg: "登录失效,请重新登陆!,CheckToken Fail"}, false, false)
-		c.StopRun()
-		return
-	}
-	if time.Now().After(session.ExpiredTime) {
-		c.JSON(models.BaseResponse{Ret: 408, Msg: "请重新登录!", ErrMsg: "获取用户信息异常,Eerr:" + err.Error()}, false, false)
-		c.StopRun()
-		return
-	}
+
 	admin, err := system.GetSysUserById(session.SysUserId)
 	if err != nil {
 		if utils.IsErrNoRow(err) {
@@ -641,13 +615,15 @@ func (c *BaseAuthController) Prepare() {
 // @datetime 2024-10-30 11:29:37
 // @param c *BaseAuthController
 // @return isOk bool
-// @return token string
+// @return session system.SysSession
 // @return resp models.BaseResponse
-func checkToken(c *BaseAuthController) (isOk bool, token string, resp models.BaseResponse) {
+func checkToken(c *BaseAuthController) (isOk bool, session *system.SysSession, resp models.BaseResponse) {
 	// 是否校验成功
 	isOk = true
 	uri := c.Ctx.Input.URI()
 
+	var token string
+
 	// 单点登录逻辑
 	aiUser := c.Ctx.GetCookie("ai_user")
 	if aiUser == `` {
@@ -753,9 +729,8 @@ func checkToken(c *BaseAuthController) (isOk bool, token string, resp models.Bas
 
 	// CookieVal不匹配、token验证失败、session以及redis中的token过期,那么以cookieVal的用户去登录并返回4014
 	account := utils.MD5(session.UserName)
-	loginKey := fmt.Sprint(utils.CACHE_ACCESS_TOKEN_LOGIN, session.Id)
-	loginCache, _ := utils.Rc.RedisString(loginKey)
-	if session.UserName != aiUser || !utils.CheckToken(account, token) || time.Now().After(session.ExpiredTime) || (session.IsRemember != 1 && loginCache == ``) {
+	//if session.UserName != aiUser || !utils.CheckToken(account, token) || time.Now().After(session.ExpiredTime){
+	if session.UserName != aiUser || !utils.CheckToken(account, token) {
 		newLogin, e := services.UserLoginChange(aiUser)
 		if e != nil {
 			resp = models.BaseResponse{Ret: 408, Msg: "重登录失败,请稍后重试!", ErrMsg: fmt.Sprint(e)}
@@ -766,6 +741,18 @@ func checkToken(c *BaseAuthController) (isOk bool, token string, resp models.Bas
 		return
 	}
 
+	//account := utils.MD5(session.UserName)
+	//if !utils.CheckToken(account, token) {
+	//	resp = models.BaseResponse{Ret: 408, Msg: "鉴权失败,请重新登录!", ErrMsg: "登录失效,请重新登陆!,CheckToken Fail"}
+	//	isOk = false
+	//	return
+	//}
+	//if time.Now().After(session.ExpiredTime) {
+	//	resp = models.BaseResponse{Ret: 408, Msg: "请重新登录!", ErrMsg: "获取用户信息异常,Err:" + err.Error()}
+	//	isOk = false
+	//	return
+	//}
+
 	// 正常逻辑
 	if token == "" {
 		resp = models.BaseResponse{Ret: 408, Msg: "请重新授权!", ErrMsg: "请重新授权:Token is empty or account is empty"}