170 похожих чатов

А как с jwt реализуется история, когда мы хотим пользователю

показать все авторизованные устройства и какую-то статистику по ним?

28 ответов

26 просмотров

fingerprint

Roman-Timofeev Автор вопроса
Danila
fingerprint

? Можно чуть больше 1 слова?

да никак. Для такого случая лучше использовать сессии, которые можно и прервать в любой момент

refresh-токены хранятся в базе. Это и есть история

Dmitriy Sviridov
refresh-токены хранятся в базе. Это и есть история

это значительно сложнее и менее безопасно, случаи применения JWT ограничены

Roman-Timofeev Автор вопроса
Roman Timofeev
? Можно чуть больше 1 слова?

Ну при генерации токена, он привязывается к уиду устройства с которого был запрос, для получени уида браузера стандарт это либа fingerprintjs

Roman Timofeev
Так а как делается мгновенный deauth?

Он не нужен, делайте токены пятиминутными

Roman Timofeev
Так а как делается мгновенный deauth?

refresh делается невалидным (в базе его делаешь невалидным) - и юзер не сможет получить новую пару токенов при ротации

Dmitriy Sviridov
refresh делается невалидным (в базе его делаешь не...

это не мгновенный deauth, валидные токены по прежнему валидны

Roman Sharkov
это не мгновенный deauth, валидные токены по прежн...

access - короткоживущий токен. Он умирает очень быстро

Danila
Он не нужен, делайте токены пятиминутными

А если совсем прям надо, тогда set невалидных токенов в любом быстром хранилище

Dmitriy Sviridov
access - короткоживущий токен. Он умирает очень бы...

вот я поэтому и не понимаю зачем всё так усложнять? 🙂 сомневаюсь что в данном бизнес кейсе десятки тысяч серверов и миллионы конкуретных клиентов чтобы оправдать JWT

ddpvfpd
очень быстро != мгновенно

Ну это трейдофф сложности реализации и требований к системе Не всем нужно, чтобы сессия была деактивирована сразу

Roman Sharkov
вот я поэтому и не понимаю зачем всё так усложнять...

Ну у меня права успешно влезают в jwt, и я не лазаю в базу.

Roman-Timofeev Автор вопроса
Danila
А если совсем прям надо, тогда set невалидных токе...

Тогда должна быть сущность, которая умеет отвечать "токен валидный" и хранить этот set

Roman Timofeev
Тогда должна быть сущность, которая умеет отвечать...

То есть пришли к идее инвалидируемых токенов в итоге

Ilya Kaznacheev
То есть пришли к идее инвалидируемых токенов в ито...

любой токен валидный в котором не истёк вшитый срок годности

Roman Sharkov
любой токен валидный в котором не истёк вшитый сро...

Инвалидируемый токен, это когда можно принудительно инвалидировать выданный токен, пока срок годности еще не вышел

Ilya Kaznacheev
Инвалидируемый токен, это когда можно принудительн...

а зачем в таком случае JWT? 😅 этот токен может быть простым идентификатором сессии. ведь в случае с JWT мы как раз не хотим ходить в storage проверять валиден ли токен или нет.

Ilya Kaznacheev
Я и не говорил нигде, что он там нужен 🙂

ну тогда это всего лишь старые добрые сессии

Roman-Timofeev Автор вопроса
Roman Timofeev
Так инвалидация как делается? )

Инвалидация сессии, привязанной к токену на сервере

Roman-Timofeev Автор вопроса
Ilya Kaznacheev
Инвалидация сессии, привязанной к токену на сервер...

Выглядит как кадавр: если у нас сессии, зачем тогда токен?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта