Принудительный выход пользователя из системы на нескольких устройствах с использованием JWT - PullRequest
0 голосов
/ 09 января 2020

У нас есть существующий REST API, который в настоящее время использует JWT.

Клиент пришел с требованием, чтобы пользователи могли использовать только 1 устройство одновременно. Например, если пользователь входит в систему с устройства iOS, а затем входит в систему устройства Android, то устройство iOS должно быть «принудительно» отключено от системы.

Поскольку мы используем JWT, мы не сохраняем отслеживание токенов, за исключением черного списка токенов, когда пользователь нажимает «Выйти».

Я исследовал, как «принудительно» выйти из системы, и кажется, что нам нужно отслеживать последний токен, использованный пользователем, затем аннулируйте это, как только мы обнаружим новый вход в систему.

Нет ли более чистого / альтернативного способа достижения вышеупомянутого?

1 Ответ

0 голосов
/ 13 января 2020

Если вы используете JWT в качестве токенов на предъявителя, в зависимости от ваших требований, этого может быть недостаточно, чтобы «отслеживать последний токен, использованный пользователем, а затем лишать законной силы, как только мы обнаружим новый вход в систему».

Когда токены носителя (независимо от того, является ли это JWT или нет) отправляются клиентом, клиент также знает о токене, который позволяет отправителю также копировать и вставлять токены с одного устройства на другое (или выдача запросов, включающих один и тот же токен с разных устройств).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...