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

Одним из основных свойств JWT является то, что он не имеет состояния и хранится на клиенте, а не в базе данных. Вам не нужно запрашивать базу данных для проверки токена. Пока подпись верна и токен не истек, это позволит пользователю получить доступ к ограниченному ресурсу. Это наиболее эффективно, если вы хотите уменьшить нагрузку на базу данных. Обратной стороной, однако, является то, что это затрудняет аннулирование существующего токена с истекшим сроком действия.

Почему в черный список?

Одна из причин, по которой вам может потребоваться сделать токен недействительным, - это когда вы создаете систему выхода, а JWT используется в качестве метода аутентификации. Создание черного списка - один из различных способов сделать токен недействительным. Логика, лежащая в основе этого, проста, ее легко понять и реализовать.

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

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

Создание черного списка

  1. Когда ваш веб-сервер получает запрос на выход, возьмите токен и сохраните его в базе данных в памяти, например Redis. Мы используем это из-за скорости и эффективности, поскольку вы не хотите попадать в основную базу данных каждый раз, когда кто-то хочет выйти из системы. Кроме того, вам не нужно хранить кучу недействительных токенов в своей базе данных. Взгляните на мой подход ниже;

Сначала создайте промежуточное ПО для проверки токена:

Потом;

  1. Затем для каждого запроса, требующего аутентификации пользователя, вы должны проверять базу данных в памяти, чтобы проверить, был ли токен признан недействительным или нет. Затем отправьте ответ на основе результата проверки. Взгляните на мой подход ниже;

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

  1. проверить подлинность токена
  2. В случае успешной проверки добавьте к объекту запроса идентификатор пользователя, сам токен и срок его действия.
  3. Сохраните токен в Redis с датой истечения срока действия самого токена.

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

Заключение

Это один из различных способов сделать токен недействительным. Я лично использую этот подход, и он работает эффективно. Хотелось бы узнать ваши мысли в комментариях.

Спасибо за чтение, ура.