Size: a a a

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

2020 July 15

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Артем Зайцев
то есть у вас просто просто приходит jwt в хедере и этого достаточно?
да, это смысл jwt
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
положить туда userid, role и еще доп данные, чтобы ими пользоваться
источник

АЗ

Артем Зайцев... in Golang Developers — русскоговорящее сообщество
дак значит всё-таки берете из jwt пейлоад, то бишь декодируете его, то бишь проверяете валидность
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
конечно. замечание было про то, что в пайлоаде хранят только userid и остальное все равно каждый раз тащат из базы
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Alexey Yurchenko
blacklist (фу расизм 😄) на payload jwt токена из хедера
Но это ведь тоже постоянная проверка, да и к тому же записи в блеклист (фу расизм) таблице копиться начинают
источник

АЗ

Артем Зайцев... in Golang Developers — русскоговорящее сообщество
Alexey Yurchenko
и если ты делаешь везде
payload = decodeJwt()
user = getUserFromDb(payload.id)
то тебе тоже не нужен jwt 😁
просто тут так расплывачато было, я не очень понял
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Анатолий
Но это ведь тоже постоянная проверка, да и к тому же записи в блеклист (фу расизм) таблице копиться начинают
в таблице на время жизни токена. у меня на практике там было макс 10-15 штук.
источник

АЗ

Артем Зайцев... in Golang Developers — русскоговорящее сообщество
ну вот это уже явно что-то не то, в самом токене можно указать время его жизни и при декодировании будет видно истек он или нет.
источник

АЗ

Артем Зайцев... in Golang Developers — русскоговорящее сообщество
у вас получается декодирование и еще сравнение
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Артем Зайцев
ну вот это уже явно что-то не то, в самом токене можно указать время его жизни и при декодировании будет видно истек он или нет.
есть у человека jwt на 7 дней. Вы его забанили через 1 день. Без механизма отзывов он будет еще 6 дней ходить куда ненадо
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
или механизм отзыва токенов
или проверять права каждый раз, тогда jwt нафиг не нужен в принципе
источник

АЗ

Артем Зайцев... in Golang Developers — русскоговорящее сообщество
ну, здесь да, проблемки
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Артем Зайцев
у вас получается декодирование и еще сравнение
сделать split и сравнение или даже split/base64decode/jsonparse это просто.
боль возникает если куча сервисов и везде это нужно. Решается выносом логики на api gateway/L7 балансер и тп. Будет в одном месте.
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Но такое редко нужно, у меня почти все e-commerce. Пофиг, что забанный человек поменяет пароль или сделает заказ, операторы все равно его отклонят 😄
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
JWT + отзыв через стоплист — это те же сессии только с дополнительным оверхедом на кодирование/декодирование.
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
x-foby
JWT + отзыв через стоплист — это те же сессии только с дополнительным оверхедом на кодирование/декодирование.
нет, мне не нужен редис на пару гигов для сессий)
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
+1 юнит на поддержку и тп
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
Плюс упавший редис и обнулившийся стоплист.
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
в смысле стоплист в редисе? не, в консуле)
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
и при правках генерится новый конфиг балансера с новым листом. Там нет запросов.
источник