Lição 1
O que é um JWT?
Entenda o formato compacto de JWT e onde desenvolvedores o encontram.
Um JSON Web Token, em geral abreviado JWT, é uma string compacta usada para transportar claims JSON entre sistemas. Você vê JWTs em requisições de API, armazenamento do navegador, cookies, fluxos OAuth e autenticação serviço a serviço.
Os três segmentos
Um JWT compacto tem três partes separadas por ponto:
header.payload.signature
- O header descreve o tipo do token e o algoritmo de assinatura.
- O payload contém claims: fatos que o token carrega.
- A assinatura permite ao verificador detectar adulteração quando tem a chave certa e regras de validação.
Os dois primeiros segmentos são JSON em Base64URL — feitos para transporte fácil, não para ficarem ocultos.
JWTs são legíveis
Qualquer pessoa com a string do token pode decodificar header e payload. Por isso segredos sensíveis não devem ir no payload salvo se o token não for criptografado por outro mecanismo.
JWTs são úteis por serem compactos
JWTs são populares porque cabem naturalmente em cabeçalhos HTTP e são fáceis de verificar em sistemas distribuídos sem consulta central de sessão. Essa conveniência cria risco quando aplicações pulam verificação ou confiam nas claims erradas.