Sergey
просто не надо юзать не по назначению
Sergey
додумался же кто-то юзать jwt для аутентификации
Sergey
крайне бессмысленно и беспощадно
Nikita
Да не, я посмотрел исходник миддла, и вообще не увидел какой либо логики за добавление куки
Алексей
а для чего тогда юзать jwt?
Nikita
Для аутификации между разными сервисами без сервера аутификации
Sergey
для подписи данных
Sergey
для общения между серверами
Sergey
всё что угодно, где надо подписать данные и проверить валидность подписи но только не замена КУКИСАМ
Алексей
а зачем вообще подписывать данные при общении между серверами?
Sergey
а зачем вообще подписывать данные при общении между серверами?
для валидации и определения какой именно сервис пришел
Sergey
или пофигу?
Sergey
сервер/сервис
Sergey
в одном из проектов сделал межсервисный аналог redux поверх jwt
Алексей
а разве все эти сервисы вообще могут быть в открытом доступе? торчать портами наружу?
Алексей
и не легче ли на какой-нибудь rabbitmq/redis их завести и пускай общаются между собой
Anton
jwt можно положить в куку
Sergey
почему?
потому что смысла нет ты либо попадаешь в зависимость от сервиса аутентификации (то же самое что в кукисах) либо попадаешь в проблему проверки принадлежности короче переизобретаешь кукисы в итоге
Sergey
Sergey
можно с таким же успехом положить длинную строку и хранить в базе
Алексей
ну хз, хз, уж лучше какой-нибудь vpn организовать и не пущать никого из вне, чем городить весь это огород с jwt
Sergey
ну вот ты придумываешь костыли)
Sergey
а если в сервис могут ходить множество сервисов
Sergey
одни надо пускать другие нет
Sergey
нужно проверять ключи
Sergey
подписи
Sergey
права
Sergey
vpn справится?
Sergey
да и что удобнее менеджить?
Anton
я видимо не совсем догоняю, но есть например не jwt аутентификация, а обычная, с id сессии, сопоставляющейся с юзером из базы данных. используешь ты, допустим, какой-нибудь passport.js. он тебе id этой сессии десериализует в объект юзера и кладёт в контекст запроса. т.е. он под капотом взял айдишник, сходил в базу на каждом запросе, достал оттуда юзера и положил в запрос.
Sergey
ну да
Sergey
ну и зачем здесь jwt?
Anton
а с jwt просто отпадает необходимость ходить в базу, потому что если jwt валидный, то значит ты сам его подписал
Sergey
нет
Sergey
тебе придется сходить за ключом юзера
Sergey
придется также проверить не отозвали ли этот jwt
Anton
это если есть функционал revoke, да
Sergey
лол
V
отозванный ЖВТ можно сделать хранением даты обновления пароля
Sergey
не катит
Алексей
а если в сервис могут ходить множество сервисов
ну если совсем разные и независимые сервисы, то да, лучше тот же jwt
Anton
а так-то я могу например положить в jwt все данные, которые мне нужны
Sergey
чтобы усложнить?
Anton
ну например для проверки прав пользователя
Sergey
безопасность от этого не увеличится
Sergey
права ты также будешь проверять на сервере
Anton
есть ли у него определённый scope в правах или нет
Sergey
а если он обновился на сервере, а в жвт старые?
Anton
ну буду, но для этого не надо ходить в базу)
Anton
да
V
жвт нужен, чтобы токен в базе не хранить
Anton
если обновился на сервере то нужен костыль, чтобы выдать ему новый
Nikolay
а что плохого то в том, чтобы ходить в базу?
Nikolay
базы для того и нужны, чтоб в них ходили
V
как отозвать?
через дату смены пароля или еще какойто таймстемп, если пароля нет
Anton
да я не говорю, что с jwt проще
V
подпись меняется - токен не валиден
Anton
и что в базу ходить вообще не надо
Sergey
подпись меняется - токен не валиден
как один токен отозвать?
V
если такой кейс есть - то никак
Sergey
ну
Sergey
то есть зайти с мобильника и десктопа не получится
V
как всегда все надо смотерть в разрезе задачи
Sergey
либо получаем дыру либо кукис)
Anton
либо получаем дыру либо кукис)
короче расстроил меня(
V
куки - способ хранения токена, сам токен то тут причем
Sergey
Sergey
ещё раз
Sergey
JWT для сессий юзать тупо нет смысла
Sergey
бессмысленное усложнение системы
Anton
а чё сейчас вообще стильно, модно, молодёжно использовать для аутентификации?
Anton
ну, сессий т.е., да
Sergey
ничего лучше не придумали и врятли придумают