с pkce), бэк - resource server, но на бэке у меня есть сущности в разных микросервисах, которые сохраняют userId(например, автора поста), но на фронт мне нужно отдать не userId, а username(или что-либо другое из того, что доступно о пользователе в кейклоке). Мне сказали, что самый правильный вариант - хранить маппинг пользователей в базе каждого сервиса, т.е. я из токена беру все, что нужно(либо по /userinfo), и кладу в базу. Но мне не нравится, что у меня в каждом сервисе будет одинаковая табличка с юзерами. Может как-то можно это решить лучше?
Заведи сервис пользователей и храни там
Тогда нужно будет на каждый запрос, идти проверять, существует ли такой пользователь или нет, если нет, то создать. С обновлением информации о пользователе тоже не очень понятно, что делать
С обновлением то понятно как раз - события в какую либо шину, да и какое обновление, если звания только ид Ну и тут как бы две крайности, ты либо все дублируешь, либо ходишь куда то за данными
в чем проблема в токене userId и userName передавать?
На каждый логин слать событие в шину?
В этом как раз проблемы нет(как и сходить на /userinfo), только польза-то какая, я из базы достану лист сущностей с id'шниками, от одного токена мне пользы не будет, надо где-то хранить их
Если тебе нужны списочные запросы выполнять, то да, либо в этом сервисе делаешь сущность с user_info (особенно полезно, если на этом сервисе сохраняются специфичные данные, которые не нужны для других сервисов), либо учишь его бегать за доп. инфой в kk или отдельный сервис пользователей
Можно научить КК каждое изменение инфы пользователя кидать в кафку (для примера), твои другие сервисы слушают и обновляют у себя инфу о пользователях это очень частый кейс
Да, видимо, только так, спасибо. Я просто хочу быть наиболее абстрагированным от IdentityProvider и тем более не хочу, чтоб моим сервисам нужны были админские права(Чтоб за юзерами по api ходить в кейклок)
keycloak kafka spi Тогда как-нибудь так должна гуглиться доп. инфа
Зачем на каждый? У тебя каждый логин меняются данные пользователя?
Тогда хранить тут на месте. Либо сделать шаренный кеш мешок сервисами
Ну я-то не знаю, когда они поменяются, но тут человек подсказал kafka spi подключить
Обсуждают сегодня