214 похожих чатов

Скажите пожалуйста, пишу с NestJS. Если у меня есть авторизационный

гуард, который зависит от сервиса какого нибудь роута (например auth), и этот гуард встраивается в контроллеры других роутов (например profile), правильно ли это? Фактически у меня все контроллеры начинают зависеть от одного контроллера. Но в то же время у меня более низкоуровневая логика авторизации (поиск по бд, сравнение ролей) находятся именно в сервисе auth, как можно это пофиксить?

14 ответов

29 просмотров
Alex- Автор вопроса

но не хочу каждый раз какую то логику выносить вверх

А зачем тебе каждый раз дергать аут ? Ты напиши отдельный слой, который из токена будет получать юзера, и пусть каждый сервис через данные об юзере определят права и обязанности юзера

Или у тебя валидация токена и получение данных о юзере можно осуществить только через сервис авторизации?

Alex- Автор вопроса

то есть сделать middleware который будет получать данные из токена, обращаться к бд и на каждый роут писать отдельный гард? у меня просто трабл в том что я хочу низкоуровневую логику (создание jwt токена / доступ к бд / и т.п.) вынести в какую то shared папку, чтобы не прописывать это везде

Alex- Автор вопроса

смотри, я вот только начал nest js изучать, делал по гайду из доки, у них это сделано вот так https://docs.nestjs.com/security/authentication

что думаешь о роли юзера в токене?

звучит как говно :))

Можно к каждому твоему сервису подкрутить логику вытягивания claims из токена

Alex- Автор вопроса

задублировать?

Alex- Автор вопроса

или наоборот наверх вынести и тупо обращаться к ней

Да, чтобы не делать лишние обращения к сервису авторизации

Alex- Автор вопроса

не хочу переиспользования

Ммм?

Alex- Автор вопроса

не так выразился)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта