wire.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package middleware
  2. import (
  3. "github.com/Wei-Shaw/sub2api/internal/config"
  4. "github.com/Wei-Shaw/sub2api/internal/service"
  5. "github.com/gin-gonic/gin"
  6. "github.com/google/wire"
  7. )
  8. // JWTAuthMiddleware JWT 认证中间件类型
  9. type JWTAuthMiddleware gin.HandlerFunc
  10. // OptionalJWTAuthMiddleware 可选 JWT 认证中间件类型:匿名放行,带 token 严格校验
  11. type OptionalJWTAuthMiddleware gin.HandlerFunc
  12. // AdminAuthMiddleware 管理员认证中间件类型
  13. type AdminAuthMiddleware gin.HandlerFunc
  14. // APIKeyAuthMiddleware API Key 认证中间件类型
  15. type APIKeyAuthMiddleware gin.HandlerFunc
  16. // ProviderSet 中间件层的依赖注入
  17. var ProviderSet = wire.NewSet(
  18. NewJWTAuthMiddleware,
  19. NewOptionalJWTAuthMiddleware,
  20. NewAdminAuthMiddleware,
  21. ProvideAPIKeyAuthMiddleware,
  22. NewAuditLogMiddleware,
  23. NewStepUpAuthMiddleware,
  24. )
  25. // Wire uses an explicit dependency while direct callers may omit tiered routing.
  26. func ProvideAPIKeyAuthMiddleware(apiKeys *service.APIKeyService, subscriptions *service.SubscriptionService, cfg *config.Config, tier *service.TieredRoutingService) APIKeyAuthMiddleware {
  27. return NewAPIKeyAuthMiddleware(apiKeys, subscriptions, cfg, tier)
  28. }