package middleware import ( "github.com/Wei-Shaw/sub2api/internal/config" "github.com/Wei-Shaw/sub2api/internal/service" "github.com/gin-gonic/gin" "github.com/google/wire" ) // JWTAuthMiddleware JWT 认证中间件类型 type JWTAuthMiddleware gin.HandlerFunc // OptionalJWTAuthMiddleware 可选 JWT 认证中间件类型:匿名放行,带 token 严格校验 type OptionalJWTAuthMiddleware gin.HandlerFunc // AdminAuthMiddleware 管理员认证中间件类型 type AdminAuthMiddleware gin.HandlerFunc // APIKeyAuthMiddleware API Key 认证中间件类型 type APIKeyAuthMiddleware gin.HandlerFunc // ProviderSet 中间件层的依赖注入 var ProviderSet = wire.NewSet( NewJWTAuthMiddleware, NewOptionalJWTAuthMiddleware, NewAdminAuthMiddleware, ProvideAPIKeyAuthMiddleware, NewAuditLogMiddleware, NewStepUpAuthMiddleware, ) // Wire uses an explicit dependency while direct callers may omit tiered routing. func ProvideAPIKeyAuthMiddleware(apiKeys *service.APIKeyService, subscriptions *service.SubscriptionService, cfg *config.Config, tier *service.TieredRoutingService) APIKeyAuthMiddleware { return NewAPIKeyAuthMiddleware(apiKeys, subscriptions, cfg, tier) }