Реализовать авторизацию по кратосу #6
No reviewers
Labels
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: SQuiz/core#6
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "kratos_auth"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
как только будут на проде закрыты дырки по овнершипу - надо будет менять старую дырявую авторизацию на новый модный кратос. процесс замены мне пока не до конца ясен, потому как там надо как то будет перегнать всё и вся в новую базу.
тем не менее, пока у тебя есть возможность плавно и спокойно этим заняться, надо заменить в этой ветке получение userId из токена jwt на то что предполагает кратос, и покрыть этот вопрос минимальными тестами - работает и ладно. по факту, в рамках этой задачи надо чисто заменить middleware на получение айдишника и данных от кратоса. каких данных - не знаю, приложи к этой задаче, что мы ещё можем получить. а айдишник для идентификации пользователя прям нужен
эта строка на самом деле пугает
реализация мидлвара имеется, с использованием jwt и по сессии из кук
вот тут два их
http://gitea.pena/PenaSide/OryKratos/src/branch/staging/middleware/middleware.go
тут как раз получаем id из Identy который менять и выбирать нельзя, вооот в принципе мидлвар есть
я тестил работает как с кипером так и просто с кратосом
тут скорее понадобятся интергационные тесты через докер
я запилю их в деплойменте от текущей реализации в стейдж ветке
по вопросу, что можем помимо ид получить:
если пользоваться первым мидлваром, который использует клиента то там можно получить что угодно связанное с пользователем по его сессии, там даже перечислять я думаю смысла нет, но самая важная штучка это - identity
вооот, что касается кипера, если юзать второй вариант, то мы получить через мидлвар можем только то что указали в правилах, можно конечно и сессию туда складывать, а потом ходить с ней уже с помощью ори.Клиента, но не знаю, кажется юзелес вариантом, можно в конфиге все это обыграть.
тут к примеру могу дать вот только то что у меня удалось сделать - http://gitea.pena/PenaSide/OryKratos/src/branch/staging/config_oauthkeeper/oathkeeper.yml
это мутаторы (еще и + к нему аутентификатор который как я понял делает тот самый запрос на вериф) - а именно хедер тут получился, довольно простецкий вариант, но хоть что то
в тг с тобой обсуждали что в принципе жвтишка тут и не нужна раз есть сессия поэтому я этот вариант не доделывал, а оставил просто на всякий случай
тест реализовал - http://gitea.pena/PenaSide/OryKratos/src/branch/staging/tests/integration
довольно простой с данными которые ожидаем и нет
по сути в кор сервисе и остальных остается только тянуть этот мидлвар
го как выберем подходящий будем тянуть?
там их два, один по сессии кратоса, второй по киперу
Checkout
From your project repository, check out a new branch and test the changes.