Browse Source

修复用户不存在的时jwt可使用的问题

SliverHorn 4 years ago
parent
commit
e97d476ed0
2 changed files with 21 additions and 0 deletions
  1. 6 0
      server/middleware/jwt.go
  2. 15 0
      server/service/sys_user.go

+ 6 - 0
server/middleware/jwt.go

@@ -49,6 +49,12 @@ func JWTAuth() gin.HandlerFunc {
 			c.Abort()
 			return
 		}
+		if err, _ = service.FindUserByUuid(claims.UUID.String()); err != nil{
+			response.Result(response.ERROR, gin.H{
+				"reload": true,
+			}, err.Error(), c)
+			c.Abort()
+		}
 		if claims.ExpiresAt - time.Now().Unix()<claims.BufferTime {
 			claims.ExpiresAt = time.Now().Unix() + 60*60*24*7
 			newToken,_ := j.CreateToken(*claims)

+ 15 - 0
server/service/sys_user.go

@@ -125,3 +125,18 @@ func FindUserById(id int) (err error, user *model.SysUser) {
 	err = global.GVA_DB.Where("`id` = ?", id).First(&u).Error
 	return err, &u
 }
+
+// @title    FindUserByUuid
+// @description   Get user information by uuid, 通过uuid获取用户信息
+// @auth                     (2020/04/05  20:22)
+// @param     uuid            string
+// @return    err             error
+// @return    user            *model.SysUser
+
+func FindUserByUuid(uuid string) (err error, user *model.SysUser) {
+	var u model.SysUser
+	if err = global.GVA_DB.Where("`uuid` = ?", uuid).First(&u).Error; err != nil{
+		return errors.New("用户不存在"), &u
+	}
+	return nil, &u
+}