package auth import ( "api_yal/internal/logger" "api_yal/internal/middleware" "api_yal/internal/repository" "time" "github.com/go-chi/chi/v5" "gorm.io/gorm" ) // RegisterRoutes регистрирует маршруты аутентификации func RegisterRoutes(r chi.Router, db *gorm.DB, jwtSecret string) { l := logger.Get() l.Debug("Регистрация маршрутов для auth.go") // Создаем репозиторий и сервис accountRepo := repository.NewAccountRepository(db) // Конфигурация токенов authConfig := AuthServiceConfig{ JWTSecret: jwtSecret, AccessTokenTTL: 15 * time.Minute, // Access token живет 15 минут RefreshTokenTTL: 7 * 24 * time.Hour, // Refresh token живет 7 дней } authService := NewAuthService(accountRepo, authConfig) handler := NewAuthHandler(authService) l.Debug("Регистрация маршрутов аутентификации") r.Route("/auth", func(r chi.Router) { // Публичные маршруты (без аутентификации) r.Group(func(r chi.Router) { r.Post("/login", handler.Login) r.Post("/register", handler.Register) r.Post("/refresh", handler.RefreshToken) r.Post("/reset-password", handler.RequestPasswordReset) r.Post("/reset-password/confirm", handler.ConfirmPasswordReset) r.Post("/mobile/login", handler.MobileLogin) // Для мобильных приложений }) // Защищенные маршруты (требуют аутентификации) r.Group(func(r chi.Router) { r.Use(middleware.AuthMiddleware(jwtSecret)) r.Post("/logout", handler.Logout) r.Post("/change-password", handler.RequestPasswordReset) r.Get("/me", handler.GetMe) }) }) }