![translation](https://cdn.durumis.com/common/trans.png)
Esta é uma postagem traduzida por IA.
O que é JWT (JSON Web Token)?
- Idioma de escrita: Coreana
- •
-
País de referência: Todos os países
- •
- TI
Selecionar idioma
Texto resumido pela IA durumis
- JSON Web Token (JWT) é um token criptografado para transmitir informações de forma segura.
- JWT é composto por cabeçalho, carga útil e assinatura, e a assinatura garante a integridade dos dados.
- JWT não requer gerenciamento separado de informações de estado, o que aumenta a escalabilidade em ambientes distribuídos.
O que é JWT?
JSON Web Token (JWT) é um tipo de padrão aberto (RFC 7519) que fornece um método seguro de transmissão de informações como um objeto JSON. Em outras palavras, as informações necessárias são colocadas em um token e criptografadas para uso.
O JWT é enfatizado como um token assinado. Quando uma assinatura é usada usando um par de chaves pública/privada, essa assinatura garante que somente a parte que possui a chave privada assinou o token. Ou seja, o servidor que possui a chave pode saber se o token é válido.
Estrutura JWT
O JWT é composto por cabeçalho (Header), carga útil (Payload) e assinatura (Signature).
Cada parte é codificada em Base64 e separada por um ponto (.).
Cabeçalho
{
"alg": "HS256",
"typ": "JWT"
O cabeçalho contém duas informações principais: o tipo de token (typ) e o algoritmo de assinatura usado (alg). O algoritmo de assinatura é usado para gerar e verificar a assinatura.
typ é definido como "JWT" e alg é escrito como HMAC, SHA256, etc. No exemplo acima, significa que o algoritmo HS256 é usado com a chave privada.
Carga útil
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
A carga útil inclui reivindicações que você deseja transmitir no token. As informações de identificação do usuário ou as propriedades do token são armazenadas em formato chave-valor. Em outras palavras, você pode inserir o que quiser!
De acordo com as especificações padrão, o nome da chave é definido de forma compacta como 3 letras.
As reivindicações registradas são as seguintes.
- iss (Emissor): Emissor do token (inclui informações de identificação exclusivas do emissor do token)
- sub (Assunto): A entidade a que o token se destina
- aud (Público): Receptor do token
- exp (Tempo de expiração): Tempo de expiração do token (após esse tempo, o token não é mais válido)
- nbf (Não antes): Data de ativação do token (o token não pode ser usado antes desse tempo)
- iat (Emitido em): Tempo de emissão do token
- jti (ID JWT): Identificador do token JWT (valor usado para distinguir entre múltiplos emissores)
Você pode adicionar outros valores conforme necessário.
No entanto, a carga útil não é criptografada, é um valor assinado, portanto não contém informações confidenciais.
Qualquer pessoa pode visualizar após a decodificação.jwt.io Você pode verificar diretamente no site.
Assinatura
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
your-256-bit-secret
O cabeçalho e a carga útil são codificados em Base64 e conectados por um ponto (.), e o servidor usa a chave privada your-256-bit-secret para assinar.
Portanto, somente o servidor que emitiu o token pode descriptografar a assinatura (Signature) usando a chave privada.
Pensando na decodificação, você pode verificar se o base64UrlEncode(header) corresponde ao valor do heaer JWT descriptografando a assinatura com a chave privada e verificar se o base64UrlEncode(payload) corresponde.
O cabeçalho e a carga útil, exceto a assinatura, são apenas codificados, portanto você pode ver as informações do corpo, mas a integridade e a segurança das informações são mantidas pela assinatura.
O JWT contém todas as informações necessárias por si só, sendo autocontido. O JWT, que foi criado para compensar as desvantagens da sessão que exige estado, não requer um armazenamento separado.
O servidor não precisa manter a sessão, o que torna o JWT sem estado, o que aumenta a escalabilidade em sistemas distribuídos ou arquiteturas de microsserviços.
Ele é protegido por assinatura, assinatura digital, e a integridade dos dados pode ser garantida.