Вопрос: Могут ли JSON Web Tokens (JWT) быть отклонены или занесены в черный список, если пользователь хочет выйти из учетной записи с другого компьютера?


Я создаю приложение, требующее проверки подлинности, и я беспокоюсь, что пользователи могут захотеть удаленно выйти из системы. Есть ли способ использовать JSON Web Tokens и быть в состоянии сделать черный список или отклонить их? Я понимаю, что их преимущество - безгражданство, но было бы неплохо иметь удаленный выход из системы.

EDIT: с помощью Express.js с использованием модуля express-jwt существует метод отмены токенов , Кроме того, имеется модуль экспресс-JWT-черный список , Я до сих пор не понимаю, как работают эти стратегии, и хотел бы знать, что является лучшей практикой на данный момент.


5


источник


Ответы:


В Auth0 есть хорошая статья о Черный список JSON Web Token API Keys  где они дают хороший пример реального мира о том, как занести в черный список ключ API JWT, чтобы он больше недействителен. Вы должны дать ему прочитать.

Обрабатывать проблему

Предоставление поддержки для черных списков JWT создает следующие вопросы:

  1. Как индивидуально идентифицируются JWT?
  2. Кто должен иметь возможность отменить JWT?
  3. Как отозваны токены?
  4. Как избежать дополнительных накладных расходов?

Это сообщение в блоге имеет целью ответить на предыдущие вопросы, используя наши   опыт реализации этой функции в нашем API v2.

Статья разбивает каждую точку, а затем показывает примерный код о том, как ее достичь, и заканчивается:

Большая часть вышеупомянутого контента относится к черным спискам JWT в   общие, а не только ключи API JWT.

Надеюсь, это сообщение в блоге предоставило некоторые полезные идеи о том, как   решить эту проблему.

Я лично применил аналогичные методики, чтобы отменить несколько значков, где токены использовались аналогично идентификаторам сеанса и хранились в файлах cookie. Я смоделировал его как раздел профиля GitHub, где вы можете видеть все ваши активные сеансы и отменить их (удаленный выезд), когда это необходимо.

Что касается наилучшей практики, я считаю, что тема будет скорее основанной на мнениях. Однако я все же вижу Auth0 как источник хороших практик в этой области с большим количеством людей, испытавших на себе этот вопрос.

ОБНОВИТЬ:

Нашли это express-jwt плагин для черного списка  на npm


3