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

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

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

14 ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ммм?

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

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Карта сайта