Size: a a a

Clojure — русскоговорящее сообщество

2020 June 21

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Уже обсуждали тут - суть jwt в том что токен можно проверить не ходя в базу прямо на месте
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Если ты в процессе проверки токена читаешь что-то из базы - нет смысла в нем кодировать что-то - можно то же самое вычитать из базы а сам токен заменить на рандомную строку
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Никита
Что делаете когда токен надо обнулить раньше времени? Например, юзер поменял пароль, или запросил, чтобы сессии кончились на других девайсах
Токены покороче делать и обнулить refresh token
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
источник

Н

Никита in Clojure — русскоговорящее сообщество
Anton Chikin
Уже обсуждали тут - суть jwt в том что токен можно проверить не ходя в базу прямо на месте
Все таки ходить в базу надо, чтобы проверить удален/забанен. как я понимаю, их применять стоит в микросервисах: чекнули в сервисе авторизации, что юзер активен, и потом в другие сервисы передаем уже JWT-токен
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Можно не лезть в базу, а брать пользователя из кэша. Если нет там, тогда читать базу и записывать в кеш. На изменение в базе повесить инвалидацию кеша.
источник

Н

Никита in Clojure — русскоговорящее сообщество
Ivan Grishaev
Можно не лезть в базу, а брать пользователя из кэша. Если нет там, тогда читать базу и записывать в кеш. На изменение в базе повесить инвалидацию кеша.
В каком месте его с кэша тянуть?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
на старте запроса.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
просто непонятно, как быть, если пользователь изменился в базе, и в токене старые данные
источник

Н

Никита in Clojure — русскоговорящее сообщество
Ivan Grishaev
просто непонятно, как быть, если пользователь изменился в базе, и в токене старые данные
В том то и дело
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Да ну. Кэш в этом ключе тоже база.
Если нужно гарантированно перекрывать доступ по желанию левой пятки авторизующего сервера, JWT чуть более чем бесполезен.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Обычный сценарий для JWT – это access token живёт недолго, зато неотзываемый. А refresh token живёт долго, но для его использования надо обращаться на авторизующий сервер, поэтому отозвать его уже технически несложно.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Любые обращения для немедленной авторизации, будь то в кэш, в базу или на другой сервис, практически убивают идею разделения на access и refresh. Примерно как если бы TTL access token был меньше секунды.
источник

S

Seryh in Clojure — русскоговорящее сообщество
Это вообще какая-то повальная ошибка начинать лазить в базу. Не довелось еще увидеть нормально внедренный jwt
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Seryh
Это вообще какая-то повальная ошибка начинать лазить в базу. Не довелось еще увидеть нормально внедренный jwt
Потому что юзкейсы не для jwt изначально
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ivan Grishaev
Можно не лезть в базу, а брать пользователя из кэша. Если нет там, тогда читать базу и записывать в кеш. На изменение в базе повесить инвалидацию кеша.
База не база суть в том что jwt самодостаточен и не требует похода куда-то для проверки
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
ну проблема в инвалидации этого токена
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Access token в JWT не инвалидируется никак, кроме истечения прописанного в нём же времени жизни.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
...зато из-за этого их время жизни обычно прописывается весьма коротким. Amazon Cognito и Azure AD, насколько я знаю, дают час.
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Pavel Peganov
...зато из-за этого их время жизни обычно прописывается весьма коротким. Amazon Cognito и Azure AD, насколько я знаю, дают час.
more like 5 mins
источник