Аннулирование сеанса JWT на стороне клиента

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

Допустим, мой токен JWT действителен в течение 4 часов. Вот мои требования / ограничения

Если пользователь работает в 3 часа 59 минут. их сеанс должен быть продлен на 2 часа, и от них не требуется повторный ввод учетных данных.

Сценарий java на стороне клиента никоим образом не должен кэшировать учетные данные пользователя.

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

Как только пользователь нажимает кнопку выхода. токен JWT больше не должен использоваться. Хотя его время жизни все еще в силе.

Если выход происходит. Все выданные токены (как часть расширения сеанса) должны быть признаны недействительными. Не только последний.

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

Ответы на вопрос(1)

Ваш ответ на вопрос