Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Invalidar Token jwt

Boa noite, segui o cursor webAPI asp Net core do professor Daniel Portugal, que por sinal está me ajudando muito e é um excelente curso, porém me restou uma dúvida em relação a autenticação JWT. Como os tokens gerados tornam-se inválidos apenas após a sua expiração, gostaria de saber como poderia ser feito para que o mesmo perdesse a validade antes desse tempo, já realizei algumas pesquisas sobre o assunto e vi muitas pessoas citando a criação de uma black list para os tokens que desejamos invalidar, porém se um usuário possuir vários tokens ativos de uma só vez, como seria possível identificar esses tokens sem a necessidade de realizar consulta a todo momento ao banco de dados para verificar se o usuário identificado no token é o usuário que desejo invalidar as tentativas de conexão?

1 resposta
solução!

Caio, bom dia.

Ao invés de invalidar um token usamos a seguinte estratégia.

Primeiro o token JWT deve ter um tempo de expiração bem pequeno (alguns minutos). Junto a essa lógica de tempo de expiração curto no JWT é implementada uma técnica chamada Refresh Tokens.

Nessa técnica é gerada uma requisição para atualizar o token expirado a partir de um refresh token que só pode ser usado uma única vez. Para isso o refresh token é registrado em uma base de dados e associado ao seu usuário (sua preocupação de consultar a base entra aqui; daí cabe criar um esquema de otimização para garantir um tempo de resposta do refresh token otimizado).

Se houver necessidade de invalidar o acesso de um usuário criamos uma black list dos refresh tokens conforme citado por você.

Mais informações aqui.

Obs.: pretendo gravar um vídeo implementando essa técnica e complementando o curso. Assim que tiver lançado aviso aqui e no próprio curso, ok?

Espero ter ajudado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software