Size: a a a

2020 April 29

AS

Andrei 🦉 Sergeev in Go-go!
Anatoliy
так какие задачи такие и изобретения, мы для себя просто выставили 10 сек жизни токена и не паримся, это все равно намного меньше запросов чем проверять каждый раз
у вас сервис, который выпускает токены на чём сделан?
источник

A

Anatoliy in Go-go!
Andrei 🦉 Sergeev
у вас сервис, который выпускает токены на чём сделан?
го, и кстати второй мой вариант скорее всего и используется в вашем ответе про кракенд, просто потому что реально мы храним у себя ток рефреш токены, а значит каждый аксес должен будет иметь идентификатор родителя что бы мы смогли посчитать его невалидным
источник

AS

Andrei 🦉 Sergeev in Go-go!
Anatoliy
го, и кстати второй мой вариант скорее всего и используется в вашем ответе про кракенд, просто потому что реально мы храним у себя ток рефреш токены, а значит каждый аксес должен будет иметь идентификатор родителя что бы мы смогли посчитать его невалидным
ну хз как это работает под капотом в krakend, мы это не использовали, но возможность декларируется)
источник

A

Anatoliy in Go-go!
ну я просто не могу придумать другой вариант с хранилищем отозванных ключей, но тут опять же вопрос как поступать если оно недоступно. и здесь уже выигрывает классический jwt, да, мы признаем что токен могут утащить, ну так много чего можно утащить, а рефреш токен тоже
источник

DP

Daniel Podolsky in Go-go!
смотрите

или мы проверяем доступ криптографически, и тогда о мгновенном разлогине речь не идет
или мы на каждый запрос ходим проверить доступ в базу, и тогда нам не нужен jwt
источник

A

Anatoliy in Go-go!
ну собственно да, если объемы запросов очень большие - тогда jwt имеет преимущества, т.к. резко снижает количество запросов, если же запросов не так много - тогда можно остаться с сессиями и в ус не дуть. Ну и если у вас всякие микросервисы, то надо либо уходить на jwt, либо тащить сессии в отдельные хранилища и придумывать как с ними работать
источник

F

Foxcool in Go-go!
Daniel Podolsky
смотрите

или мы проверяем доступ криптографически, и тогда о мгновенном разлогине речь не идет
или мы на каждый запрос ходим проверить доступ в базу, и тогда нам не нужен jwt
Вариант с проверкой при рефреше, который я выше описал - вроде вообще дефолтный и не противоречит. Сервис, который дает токены и рефрешит, при рефреше таки сверится с тем, что токен не инвалидирован.


Вариант Антдрея мне даже нравится. Можно вообще сразу два кейса решить:

- при выпуске пары токенов еще в них UUID записываем одинаковый.
- при разлогине срочном этот UUID попадает в БД.
- шлюз типа кракенд периодически подтягивает список таких айдишников и юзает блумфильтр
- так же можно сказать, что инвалидированы все токены, выпущенные до какого-то времени (кнопка ралогинить на всех девайсах)
источник

F

Foxcool in Go-go!
в итоге при каждом запросе не ходим куда-то, как при сессиям. Производительность сохранена. Разлогины есть
источник

DP

Daniel Podolsky in Go-go!
если мы не ходим куда-то при каждом запросе - у нас нет мгновенного разлогина
источник

A

Anatoliy in Go-go!
Foxcool
в итоге при каждом запросе не ходим куда-то, как при сессиям. Производительность сохранена. Разлогины есть
всегда ходим на самом деле, вопрос в том куда и с какой скоростью. это при необходимости мгновенного разлогина конечно
источник

NG

Nikita Gritsai in Go-go!
Daniel Podolsky
если мы не ходим куда-то при каждом запросе - у нас нет мгновенного разлогина
мы просто не далеко ходим)
источник

F

Foxcool in Go-go!
Daniel Podolsky
если мы не ходим куда-то при каждом запросе - у нас нет мгновенного разлогина
пусть шлюз ообновляет свой кеш раз в пару секунд. ВВремязависит от потребностей
источник

DP

Daniel Podolsky in Go-go!
за сессией тоже не обязательно ходить далеко
источник

NG

Nikita Gritsai in Go-go!
Да понятно
источник

F

Foxcool in Go-go!
тут же как с прометеем: вы снимаете нагрузку в виде действия на каждый запрос и превращаете ее в действие раз в какой-то период времени.

UPD: а мгновенность прям самая настоящая и не нужна. Вам надо решить 99% проблема - чтоб токен не был валиден еще 15 минут, а за несколько секунд перестал принимтаься шлюзом. Т.е. Закон Парето
источник

F

Foxcool in Go-go!
т.е. сразу получаете масштабирование изи
источник

F

Foxcool in Go-go!
не понмиаю, как вы не понимаете :D
источник

RS

Roman Sharkov in Go-go!
Anatoliy
ну собственно да, если объемы запросов очень большие - тогда jwt имеет преимущества, т.к. резко снижает количество запросов, если же запросов не так много - тогда можно остаться с сессиями и в ус не дуть. Ну и если у вас всякие микросервисы, то надо либо уходить на jwt, либо тащить сессии в отдельные хранилища и придумывать как с ними работать
какая разница микросервисы или нет?!
источник

AS

Andrei 🦉 Sergeev in Go-go!
Roman Sharkov
какая разница микросервисы или нет?!
ну кто то передаёт jwt токен по всей цепочке вызовов других микросервисов при обработке входящего запроса
источник

RS

Roman Sharkov in Go-go!
Andrei 🦉 Sergeev
ну кто то передаёт jwt токен по всей цепочке вызовов других микросервисов при обработке входящего запроса
зачем?!
источник