diff --git a/internal/controller/user_controller.go b/internal/controller/user_controller.go index 6d016688..5ca79133 100644 --- a/internal/controller/user_controller.go +++ b/internal/controller/user_controller.go @@ -216,6 +216,8 @@ func (uc *UserController) UserLogout(ctx *gin.Context) { } _ = uc.authService.RemoveUserCacheInfo(ctx, accessToken) _ = uc.authService.RemoveAdminUserCacheInfo(ctx, accessToken) + visitToken, _ := ctx.Cookie(constant.UserVisitCookiesCacheKey) + _ = uc.authService.RemoveUserVisitCacheInfo(ctx, visitToken) handler.HandleResponse(ctx, nil, nil) } diff --git a/internal/repo/auth/auth.go b/internal/repo/auth/auth.go index 1826e96d..3cc05570 100644 --- a/internal/repo/auth/auth.go +++ b/internal/repo/auth/auth.go @@ -86,6 +86,15 @@ func (ar *authRepo) RemoveUserCacheInfo(ctx context.Context, accessToken string) return nil } +// RemoveUserVisitCacheInfo remove visit token cache +func (ar *authRepo) RemoveUserVisitCacheInfo(ctx context.Context, visitToken string) (err error) { + err = ar.data.Cache.Del(ctx, constant.UserVisitTokenCacheKey+visitToken) + if err != nil { + return errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() + } + return nil +} + // SetUserStatus set user status func (ar *authRepo) SetUserStatus(ctx context.Context, userID string, userInfo *entity.UserCacheInfo) (err error) { userInfoCache, err := json.Marshal(userInfo) diff --git a/internal/service/auth/auth.go b/internal/service/auth/auth.go index bea9a044..12e06108 100644 --- a/internal/service/auth/auth.go +++ b/internal/service/auth/auth.go @@ -14,6 +14,7 @@ type AuthRepo interface { SetUserCacheInfo(ctx context.Context, accessToken, visitToken string, userInfo *entity.UserCacheInfo) error GetUserVisitCacheInfo(ctx context.Context, visitToken string) (accessToken string, err error) RemoveUserCacheInfo(ctx context.Context, accessToken string) (err error) + RemoveUserVisitCacheInfo(ctx context.Context, visitToken string) (err error) SetUserStatus(ctx context.Context, userID string, userInfo *entity.UserCacheInfo) (err error) GetUserStatus(ctx context.Context, userID string) (userInfo *entity.UserCacheInfo, err error) RemoveUserStatus(ctx context.Context, userID string) (err error) @@ -96,6 +97,13 @@ func (as *AuthService) RemoveUserCacheInfo(ctx context.Context, accessToken stri return as.authRepo.RemoveUserCacheInfo(ctx, accessToken) } +func (as *AuthService) RemoveUserVisitCacheInfo(ctx context.Context, visitToken string) (err error) { + if len(visitToken) > 0 { + return as.authRepo.RemoveUserVisitCacheInfo(ctx, visitToken) + } + return nil +} + // AddUserTokenMapping add user token mapping func (as *AuthService) AddUserTokenMapping(ctx context.Context, userID, accessToken string) (err error) { return as.authRepo.AddUserTokenMapping(ctx, userID, accessToken)