O JSON Web Token (JWT) é um padrão aberto, que define uma maneira compacta e independente de transmitir informações com segurança entre as partes, utilizando um objeto JSON.
Os tokens assinados podem verificar a integridade das reivindicações (claims) contidas nele, enquanto os tokens criptografados ocultam essas reivindicações de outras partes. Quando os tokens são assinados usando pares de chaves pública / privada, a assinatura também certifica que apenas a parte que detém a chave privada é a que o assinou.
E onde deveria usá-los?
Dois cenários principais, onde JWTs são úteis:
Autorização: este é o cenário mais comum para o uso do JWT. Após o login do usuário, cada solicitação subsequente incluirá o JWT, permitindo que o usuário acesse rotas, serviços e recursos permitidos com esse token. O SSO (Single sign-on) é um recurso que usa amplamente o JWT atualmente, devido à sua pequena sobrecarga e à capacidade de ser facilmente usado em diferentes domínios.
Troca de informações: os JSON Web Tokens são uma boa maneira de transmitir informações com segurança entre as partes. Como as JWTs podem ser assinadas (por exemplo, usando pares de chaves públicas / privadas), você pode ter certeza de que os remetentes são quem eles dizem que são. Além disso, como a assinatura é calculada usando o cabeçalho e o payload, você também pode verificar se o conteúdo não foi violado.
Certo, e como é a estrutura de um JWT?
JSON Web Tokens são compostos por 3 partes, separadas por um ponto: Cabeçalho (header), dados (payload) e assinatura (signature).
Cabeçalho (header)
O cabeçalho geralmente consiste em duas partes: o tipo do token, que é JWT, e o algoritmo de assinatura que está sendo usado, como HMAC SHA256 ou RSA.
Em seguida, esse JSON é codificado em Base64Url para formar a primeira parte do JWT.
Dados (payload)
O payload é exatamente os dados que você deseja enviar para a outra parte. Geralmente segue um padrão (registered claims), mas não é obrigatório, portanto aceita qualquer JSON
O payload é então codificado em Base64Url para formar a segunda parte do JWT.
Assinatura (signature)
Para criar a parte da assinatura, é necessário pegar o cabeçalho codificado, a payload codificado, um segredo, o algoritmo especificado no cabeçalho e assinar isso.
A assinatura é usada para verificar se a mensagem não foi alterada ao longo do caminho e, no caso de tokens assinados com uma chave privada, também pode verificar se o remetente da JWT é quem diz ser.
Esse conteúdo também está lá no insta da codar.me, segue lá, que tenho postado conteúdo com frequência! Ah, e se inscreve no canal do youtube pra conteúdos mais aprofundados! :)
Top comments (0)