This commit is contained in:
oneao committed 2026-04-07 17:19:52 +08:00
1 parent c6671c8a8c
commit f0cb963d23
76 files changed
+6467 -498

No files matched your search

@@ -0,0 +1,47 @@
package middleware
import (
"allapp-go/internal/httpx"
"allapp-go/pkg/jwtx"
"strings"
"github.com/gofiber/fiber/v3"
)
const CtxUserIDKey = "user_id"
// Auth 登录校验中间件
func Auth() fiber.Handler {
return func(c fiber.Ctx) error {
token := strings.TrimSpace(c.Get("Token"))
if token == "" {
return httpx.Unauthorized(c, "未登录")
}
verifyToken, ok := jwtx.VerifyToken(c.Context(), token)
if !ok {
return httpx.Unauthorized(c, "登录已过期")
}
c.Locals(CtxUserIDKey, verifyToken.Data["user_id"])
return c.Next()
}
}
func GetUserID(c fiber.Ctx) (int64, error) {
v := c.Locals(CtxUserIDKey)
if v == nil {
return 0, httpx.Unauthorized(c, "登录已过期")
}
userID, ok := v.(int64)
if !ok {
return 0, httpx.Unauthorized(c, "登录已过期")
}
return userID, nil
}
@@ -0,0 +1,35 @@
package middleware
import (
"allapp-go/pkg/logger"
"time"
"github.com/gofiber/fiber/v3"
"go.uber.org/zap"
)
func Logger() fiber.Handler {
return func(c fiber.Ctx) error {
traceID := c.RequestID()
logger.SetTraceID(c, traceID)
start := time.Now()
err := c.Next()
// ✅ 计算耗时
cost := time.Since(start)
log := logger.FromCtx(c.Context())
log.Info("HTTP 请求",
zap.String("method", c.Method()),
zap.String("path", c.Path()),
zap.Int("status", c.Response().StatusCode()),
zap.String("ip", c.IP()),
zap.String("duration", cost.String()),
)
return err
}
}