@eugenedrvnk

Как обработать циклическую зависимость между модулями User и Auth?

У меня есть циклическая зависимость в моем приложении между UserModule и AuthModule.

AuthModule содержит класс AuthGuard, который использует UserService (UserService.findOne) для проверки существования пользователя, и в случае положительного ответа - пропускает его.

В то же время UserModule импортирует AuthModule, так как для UserController нам нужно использовать AuthGuard, чтобы предотвратить доступ пользователя к маршрутам, которые не предназначены для него.

Я понимаю, что это довольно классическая проблема, но, к сожалению, не смог найти ни одного хорошо обоснованного решения.

- кто-то просто помещает этот AuthGuard в UserModule.
- кто-то дублирует код из метода "UserService.findOne" в AuthGuard.
- кто-то рекомендует использовать функциональность "forwardRef" (в случае nestjs).

Какой подход наиболее подходящий в этом случае? Потому что, насколько я понимаю, "forwardRef" определенно не лучший способ решения этой проблемы."
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 1
@historydev
Острая аллергия на анимешников
Создай глобальный сервис который будет работать с роутером и в него уже импортируй зависимости на базе которых строится логика, такие как AuthGuard
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы