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

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

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

28 ответов

14 просмотров

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
Инвалидация сессии, привязанной к токену на сервер...

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

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
Тут просто дело в том, что я не могу сейчас дать такие подробности из за того что рассчитать это всё нереально. Этого проекта который я хочу сделать ещё даже не существует) И ...
🐾
8
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
Карта сайта