Atualização de token JWT (sessões deslizantes) e logout

Eu sou muito novo no JWT e acabei herdando uma base de código que faz uso do JWT. Agora, existem alguns problemas fundamentais que estou enfrentando e não estou encontrando respostas. Esta pergunta não é baseada em código, portanto, tenha paciência comigo.

Digamos que meu token JWT seja válido por 4 horas. Aqui estão meus requisitos / restrições

Se um usuário estiver trabalhando às 3 horas e 59 minutos. a sessão deve ser estendida por 2 horas e não é necessário que você insira novamente as credenciais.

O script java do lado do cliente não deve armazenar em cache as credenciais do usuário de forma alguma.

Não há problema em atualizar o token JWT com um novo ... mas você não deve fazer isso em todas as solicitações feitas no servidor. Portanto, o cliente precisa ser inteligente para atualizar o token JWT quando for a hora certa. Você não deve tentar emitir um novo token em todas as solicitações feitas ao aplicativo, porque terminaremos em um cenário em que temos milhares de tokens ativos gerados no decorrer de uma sessão e todos eles estão ativos. isso torna o requisito de saída ainda mais difícil.

Depois que um usuário clica em sair. o token JWT não deve mais ser utilizável. Mesmo que seu tempo de vida ainda seja válido.

Se ocorrer uma saída. Todos os tokens emitidos (como parte da extensão da sessão) devem ser invalidados. Não é apenas o último.

Estou começando a ler sobre o JWT, mas parece que meus requisitos não podem ser atendidos com o JWT. esses requisitos são muito fáceis de atender à abordagem de identificação de sessão. mas não quero desistir da JWT ainda.

questionAnswers(1)

yourAnswerToTheQuestion