diff --git a/biz/user.go b/biz/user.go index d7467a0..0e67274 100644 --- a/biz/user.go +++ b/biz/user.go @@ -476,7 +476,7 @@ func (s *UserAPIService) GetUserCaptcha(ctx context.Context, req *pb.GetUserCapt func (s *UserAPIService) GetUserPermissions(ctx context.Context, req *emptypb.Empty) (*pb.GetUserPermissionsReply, error) { userClaims, ok := ctx.Value(auth.CtxKeyUserClaims).(*auth.UserClaims) if !ok { - return nil, status.Error(codes.Unauthenticated, "您未登录或您的登录已过期") + return nil, status.Error(codes.Unauthenticated, ErrorMessageInvalidToken) } permissions, err := s.dbModel.GetUserPermissinsByUserId(userClaims.UserId) diff --git a/model/logout.go b/model/logout.go index 74a5946..7bfe506 100644 --- a/model/logout.go +++ b/model/logout.go @@ -4,6 +4,7 @@ import ( "time" "go.uber.org/zap" + "gorm.io/gorm" ) type Logout struct { @@ -44,7 +45,12 @@ func (m *DBModel) IsInvalidToken(uuid string) bool { } logout := &Logout{} - m.db.Select("id").Where("uuid = ?", uuid).First(logout) + err := m.db.Select("id").Where("uuid = ?", uuid).First(logout).Error + if err != nil && err != gorm.ErrRecordNotFound { + m.logger.Error("IsInvalidToken", zap.Error(err)) + return true + } + if logout.Id > 0 { m.invalidToken.Store(uuid, struct{}{}) m.validToken.Delete(uuid)