修改middleware包
This commit is contained in:
@@ -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有效,但对应的用户已不存在
|
||||
|
||||
Reference in New Issue
Block a user