JWT
Significa "JSON Web Token".
Um JWT é um token padrão do setor que compartilha informações de segurança entre duas partes. Os JWTs são compactos e seguros para uso em URLs, o que permite que servidores web e clientes os troquem como parte de uma solicitação HTTPS. O uso mais comum de um JWT é autenticar um usuário conectado a um site ou aplicativo web, geralmente por meio de um serviço de logon único (SSO).
Os JWTs consistem em três partes:
- O cabeçalho inclui informações sobre o tipo de token e o algoritmo usado para gerar a assinatura.
- O payload inclui a lista de declarações feitas pelo token. Essas declarações geralmente incluem informações sobre o emissor do token, o site ou aplicativo web que usa o token e o usuário. Elas também incluem o momento em que o token foi emitido e quando expirará ambos usando (tempo de época). Além desses valores comuns, um JWT pode incluir declarações arbitrárias exclusivas do site ou aplicativo web que emite o token.
- A assinatura verifica se o token não foi alterado desde que foi emitido.
Sites e aplicativos web costumam usar JWTs como um método sem estado para autenticar um usuário. Eles não exigem que o servidor mantenha uma sessão na sua memória ou no seu banco de dados, o que reduz a sobrecarga necessária para cada usuário. Em vez disso, o cliente e o servidor trocam o JWT a cada solicitação HTTPS, verificando a assinatura para garantir que o token não foi alterado. Quando o JWT expira, o usuário precisa entrar novamente para que um novo token seja emitido.
Criando um JWT
Tanto o cabeçalho quanto o payload de um JWT consistem em texto escrito em JSON. O cabeçalho e o payload são codificados separadamente usando um algoritmo chamado base64, transformando várias linhas de texto em uma única string. As strings codificadas do cabeçalho e do payload são combinadas e separadas por um caractere '.'.
A string combinada, que contém o cabeçalho e o payload codificados, é codificada mais uma vez usando um algoritmo de hash e uma chave secreta para criar a assinatura. Em seguida, a assinatura é anexada ao final do cabeçalho e do payload, separada por outro caractere '.', para criar o JWT final.
Teste seus conhecimentos