diff --git a/internal/controllers/auth_controller.go b/internal/controllers/auth_controller.go index 55d7d1a..6b706a2 100644 --- a/internal/controllers/auth_controller.go +++ b/internal/controllers/auth_controller.go @@ -169,8 +169,8 @@ func (ac *AuthController) Logout(c *gin.Context) { func (ac *AuthController) GetCurrentUser(c *gin.Context) { userID := c.GetString("userID") - var user models.User - if err := database.DB.Where("id = ?", userID).First(&user).Error; err != nil { + user, err := ac.userService.GetUserByID(userID) + if err != nil { utils.Unauthorized(c, "会话无效") return } diff --git a/internal/services/user_service.go b/internal/services/user_service.go index 675f42b..2f4312d 100644 --- a/internal/services/user_service.go +++ b/internal/services/user_service.go @@ -57,6 +57,14 @@ func (us *UserService) GetUserByUsername(username string) *models.User { return &user } +func (us *UserService) GetUserByID(id string) (*models.User, error) { + var user models.User + if err := database.DB.Where("id = ?", id).First(&user).Error; err != nil { + return nil, err + } + return &user, nil +} + func (us *UserService) ValidatePassword(user *models.User, password string) bool { // 尝试 bcrypt 校验 err := bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password))