Files
tp/main_dc/yalarba/api_yal/internal/domain/auth/router.go
T
valitovgaziz 21c6c03b27 On branch main
modified:   internal/database/psql_db.go
	modified:   internal/domain/auth/dto.go
	modified:   internal/domain/auth/handler.go
	modified:   internal/domain/auth/router.go
	modified:   internal/domain/auth/servcie.go
	new file:   internal/models/password_reset.go
	modified:   internal/repository/account_repository.go
	modified:   internal/repository/account_repository_impl.go
auth domain is implemented but not tested
2026-03-31 05:29:46 +05:00

52 lines
1.7 KiB
Go

// router.go
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) {
// Создаем репозиторий и сервис
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 := logger.Get()
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)
})
})
}