From ff1ee6b076586cb5009e452bb9d39822df91973e Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期六, 28 十月 2023 18:25:12 +0800 Subject: [PATCH] fix --- middleware/refresh_user.go | 1 + service/lru.go | 17 +++++++++++------ middleware/jwt.go | 12 +++++++----- model/user.go | 4 ++-- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/middleware/jwt.go b/middleware/jwt.go index 5007bac..907a1d0 100644 --- a/middleware/jwt.go +++ b/middleware/jwt.go @@ -98,11 +98,8 @@ // parseToken 瑙f瀽token鍖呭惈鐨勪俊鎭� claims, err := j.ParseToken(token) if err != nil { - if err == utils.TokenExpired { - c.Next() - return - } - c.Next() + ctx.Fail(ecode.JWTDisabled) + c.Abort() return } userInfo := service.GetUserBaseCache(claims.UserId) @@ -110,6 +107,11 @@ SyncUserInfo([]string{claims.UserId}) userInfo = service.GetUserBaseCache(claims.UserId) } + if userInfo == nil { + ctx.Fail(ecode.JWTDisabled) + c.Abort() + return + } SetActiveTime(claims.UserId) diff --git a/middleware/refresh_user.go b/middleware/refresh_user.go index 22db40c..c1ae38d 100644 --- a/middleware/refresh_user.go +++ b/middleware/refresh_user.go @@ -43,6 +43,7 @@ intervalRefreshUserMinute: intervalRefreshUserMinute, ctx: ctx, cancel: cancel, + Users: map[string]*CurrentActiveUser{}, } } diff --git a/model/user.go b/model/user.go index 42f71dd..db6afb1 100644 --- a/model/user.go +++ b/model/user.go @@ -314,11 +314,11 @@ func (slf *UserSearch) UUID2CrmUserId(userIds []string) ([]*IdPair, error) { var ( records = make([]*IdPair, 0) - db = slf.build() + db = slf.Orm.Model(&User{}) ) db = db.Where("uuid in ?", userIds) - if err := db.Find(&records).Error; err != nil { + if err := db.Select("user.id, user.uuid").Find(&records).Error; err != nil { return records, fmt.Errorf("find all err: %v", err) } diff --git a/service/lru.go b/service/lru.go index 040f2b6..4a9f173 100644 --- a/service/lru.go +++ b/service/lru.go @@ -20,18 +20,23 @@ } func GetUserBaseCache(adminUserId string) *UserBaseInfo { - userCache, ok := userCache.Get(adminUserId) + cache, ok := userCache.Get(adminUserId) if !ok { userService := UserService{} userRecord, err := userService.GetUserInfo(adminUserId) if err != nil { return nil } - subIds, _, err := userService.UUID2CrmUserId(strings.Split(userRecord.SubUserIds, ",")) - subIds = append(subIds, userRecord.ID) - if err != nil { - return nil + var subIds []int + if len(userRecord.SubUserIds) > 0 { + subIds, _, err = userService.UUID2CrmUserId(strings.Split(userRecord.SubUserIds, ",")) + if err != nil { + return nil + } } + + subIds = append(subIds, userRecord.ID) + baseInfo := &UserBaseInfo{ UserId: userRecord.ID, NickName: userRecord.NickName, @@ -40,7 +45,7 @@ SetUserBaseCache(adminUserId, baseInfo) return baseInfo } - return userCache + return cache } func SetUserBaseCache(adminUserId string, user *UserBaseInfo) { -- Gitblit v1.8.0