Вы не можете вручную истечь токен после того, как он был создан.Таким образом, вы не можете фактически выйти из JWT на стороне сервера, как вы делаете с сеансами.
JWT не имеет состояния, что означает, что вы должны хранить все, что вам нужно, в полезной нагрузке и пропускать выполнение запросов БД для каждого запроса.Но если вы планируете иметь строгую функциональность выхода из системы, которая не может ожидать автоматического истечения срока действия токена, даже если вы очистили токен со стороны клиента, вам может понадобиться пренебречь логикой без сохранения состояния и выполнить некоторые запросы.так в чем же решение?
Установить разумное время истечения срока действия для токенов
Удалить сохраненный токен со стороны клиента при выходе из системы
Запрос выдан токен против Черный список на каждый авторизованный запрос
Черный список
«Черный список» всехтокены, которые больше не действительны и еще не истек.Вы можете использовать БД с опцией TTL для документов, для которой будет задано время, оставшееся до истечения срока действия токена.
Redis
Redis - хороший вариант для черный список, что позволит быстро в памяти получить доступ к списку.Затем в некотором промежуточном программном обеспечении, которое запускается при каждом авторизованном запросе, вы должны проверить, находится ли предоставленный токен в черном списке .Если это так, вы должны выдать несанкционированную ошибку.А если это не так, отпустите его, и проверка JWT обработает его и определит, истек ли он или все еще активен.