O que é um Token JWT? (Estrutura e Como Funciona)

JWTs são o cavalo de batalha silencioso da autenticação moderna. Parecem três strings separadas por pontos, mas codificam uma reivindicação de identidade além de uma assinatura. Este guia decodifica a estrutura, mostra o que é protegido e o que não é e explica como inspecionar um com segurança.

O que são as três partes separadas por pontos de um JWT?

Um JWT é header.payload.signature. O header costuma registrar o algoritmo de assinatura e o tipo. O payload guarda reivindicações como sub (subject), iat (issued at) e exp (expiration). A assinatura é a parte que permite a um servidor verificar que o token não foi adulterado.

O que é assinado e o que deve permanecer secreto?

Apenas a assinatura prova integridade. O header e o payload são codificados, não criptografados, então qualquer um pode ler o conteúdo. Nunca coloque segredos no payload de um JWT. A assinatura é calculada com uma chave secreta (HS256) ou um par de chaves pública/privada (RS256) conhecido apenas pelo servidor.

Como um JWT é usado?

Um cliente recebe um token após o login e o envia em cada requisição, normalmente em um header Authorization. O servidor verifica a assinatura e as reivindicações e confia na identidade sem consultar o usuário de novo. Essa característica sem estado é por que JWTs escalam bem entre muitos serviços.

Como ler expiração e validação em um JWT?

A reivindicação exp diz quando um token deixa de ser válido e iat quando começou. Um decodificador converte esses timestamps em datas legíveis para você ver de relance se um token está expirado, emitido recentemente ou já obsoleto.

Como decodificar um JWT sem comprometê-lo?

Você só precisa do payload e do header para inspecionar um token, o que torna a decodificação segura desde que aconteça no seu navegador. Decodifique o header, o payload e a assinatura de qualquer token com o decodificador JWT, que converte as datas de expiração e destaca o JSON.

FAQ

Artigos Relacionados