за авторизацию пользователя:
Вот что пока придумал: создавать модули под каждую сущность (session, user, ..) где каждаю сущность предостваляет методы создания, удаления, обновления и т.д.
Другой варинат - один модуль auth, в котором множество сервисов со своими методами.
Или может у вас есть свои варианты, примеры?
микросервис авторизации должен отвечать только за авторизацию и регистрацию пользователей - стратегии авторизации (локальная, jwt, oauth и т.д.) - генерация токенов - генерация ссылок активации - генерация кода активации (например по смс) (при том отправка смс это уже другой микросервис) - хранить у себя в бд данные пользователя, токенов, кодов и ссылок активации, которые нужны именно для авторизации, данные по типу ФИО, паспортные и т.д. - это уже профиль, все это в микросервис user Как будет у тебя это организованно - уже твое дело. Этот микросервис будет иметь контроллеры? Если да - то проще, если все будет через какой-нибудь gateway, это уже сложнее.
А в этом случае в нём будет логика создания юзера, или она будет с сервиса User?
да, создание пользователя тут, с email, телефоном. В микросервисе user уже данные необходимые для профиля, ФИО, адреса, фотки если надо и прочее
А как сделать авторизацию, то есть создание сессии? Если у меня user в другом микросервисе (гипотетически может быть и на другом сервере) вместе с БД где хранятся данные пользователя, а микросервис auth должен проверить логин и пароль перед выдачей сессии, ему нужно будет лезть в БД с пользователями (которую использует микросервис user)?
ну да, делается это внутри стратегии, инджектируешь юзер сервис и через него проверяешь пользователя. А как ты будешь проверять, внутри auth сервиса хранить пользователей и проверять, ходить через очередь или другие способы в другой сервис - уже от тебя зависит
ок, я наверное напрямую подключение в БД сделаю, просто получается что оба сервиса зависят от одной БД
у каждого мс своя бд
а пользователей нужно дублировать?
Ну наш концепт не подойдет тебе скорее всего *У нас нет API gateway | выше стоит traefik / nginx, а у микросервиса 2 контроллера, для общения у сервисов и http ответов*
Обсуждают сегодня