修改middleware包

This commit is contained in:
2025-11-05 18:38:41 +08:00
parent ef4ca397ce
commit 3e2f9e7210
4 changed files with 27 additions and 16 deletions

View File

@@ -2,12 +2,14 @@
package middleware
import (
"context"
"errors"
"net/http"
"strings"
"git.huangwc.com/pig/pig-farm-controller/internal/app/controller"
"git.huangwc.com/pig/pig-farm-controller/internal/domain/token"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
"github.com/labstack/echo/v4"
@@ -16,9 +18,11 @@ import (
// AuthMiddleware 创建一个Echo中间件用于JWT身份验证
// 它依赖于 TokenService 来解析和验证 token并使用 UserRepository 来获取完整的用户信息
func AuthMiddleware(tokenService token.Service, userRepo repository.UserRepository) echo.MiddlewareFunc {
func AuthMiddleware(ctx context.Context, tokenService token.Service, userRepo repository.UserRepository) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
reqCtx := logs.AddFuncName(ctx, c.Request().Context(), "AuthMiddleware")
// 从 Authorization header 获取 token
authHeader := c.Request().Header.Get("Authorization")
if authHeader == "" {
@@ -40,7 +44,7 @@ func AuthMiddleware(tokenService token.Service, userRepo repository.UserReposito
}
// 根据 token 中的用户ID从数据库中获取完整的用户信息
user, err := userRepo.FindByID(claims.UserID)
user, err := userRepo.FindByID(reqCtx, claims.UserID)
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
// Token有效但对应的用户已不存在