um Token Web JSON (JWT) é um padrão aberto (RFC 7519) que define uma forma compacta e auto-contida para transmitir informação de forma segura entre as partes como um objeto JSON. Esta informação pode ser verificada e confiável porque é assinada digitalmente. JWTs pode ser assinado usando um segredo ou um par de chaves público/privado.

Qual é a estrutura do Token Web JSON?,

  • Cabeçalho
  • Carga
  • Assinatura

Cabeçalho

O cabeçalho normalmente consiste de duas partes: o tipo de token, que é JWT, e o algoritmo de hash que é usado, como HASH SHA256 ou RSA.

Por exemplo:

{ "alg": "HS256", "typ": "JWT"}

então, este JSON é Base64Url-codificado para formar a primeira parte do JWT.

carga útil

a segunda parte do token é a carga útil, que contém as reivindicações. As reivindicações são declarações sobre uma entidade.,

  • reivindicações registadas: trata-se de um conjunto de alegações pré-definidas que não são obrigatórias mas recomendadas, para fornecer um conjunto de alegações úteis e interoperáveis. consulte esta informação para obter mais informações sobre os nomes das reivindicações registadas

  • reivindicações públicas: estas podem ser definidas à vontade por aqueles que usam JWTs. Mas para evitar colisões, elas devem ser definidas

  • reivindicações privadas: estas são as reivindicações customizadas criadas para compartilhar informações entre as partes que concordam em usá-las e não são registradas ou públicas reivindicações.,

Um exemplo de carga é mostrado abaixo:

{ "sub": "1234567890", "name": "John Doe", "admin": true}

Assinatura

Para criar a assinatura parte, você tem que levar o cabeçalho codificado, codificados de carga, um segredo, o algoritmo especificado no cabeçalho, e sinal de que.

HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

então, você tem que colocar tudo junto. O seguinte mostra um JWT que tem o cabeçalho anterior e carga codificada, e é assinado com um segredo.

jwt.io.