From 9e3142b8f84909c717297a0b3e1e6a9af47f0ea2 Mon Sep 17 00:00:00 2001 From: truthhun <1272881215@qq.com> Date: Fri, 19 May 2023 08:49:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0token=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- biz/user.go | 2 +- model/logout.go | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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)