Un jeton Web JSON (JWT) est un standard ouvert (RFC 7519) qui définit un moyen compact et autonome de transmettre en toute sécurité des informations entre les parties en tant qu’objet JSON. Ces informations peuvent être vérifiées et approuvées car elles sont signées numériquement. Les JWT peuvent être signés à l’aide d’une paire de clés secrète ou publique/privée.

Quelle est la Structure du jeton Web JSON?,

  • en-Tête
  • Charge
  • Signature

en-Tête

L’en-tête se compose généralement de deux parties: le type de jeton, qui est JWT, et l’algorithme de hachage utilisé, comme HMAC SHA256 ou RSA.

Par exemple:

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

Ensuite, ce JSON est Base64Url codé pour former la première partie de la JWT.

Charge

La deuxième partie de la marque est la charge utile, qui contient les revendications. Les réclamations sont des déclarations concernant une entité.,

  • revendications enregistrées: il s’agit d’un ensemble de revendications prédéfinies qui ne sont pas obligatoires mais recommandées, afin de fournir un ensemble de revendications utiles et interopérables. reportez-vous à ceci pour plus d’Informations noms de revendications enregistrés

  • revendications publiques: celles-ci peuvent être définies à volonté par ceux qui utilisent JWTs. Mais pour éviter les collisions, elles doivent être définies

  • revendications privées: ce sont les revendications personnalisées créées pour partager des informations entre les parties qui conviennent de les utiliser et ne sont ni des revendications enregistrées ni publiques.,

un exemple de charge utile est montré ci-dessous:

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

Signature

pour créer la partie signature, vous devez prendre l’en-tête encodé, la charge utile encodée, un secret, l’algorithme spécifié dans l’en-tête, et le signer.

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

Ensuite, vous devez mettre tout cela ensemble. Ce qui suit montre un JWT qui a l’en-tête et la charge utile précédents encodés, et il est signé avec un secret.

Si vous voulez jouer avec JWT et de mettre en pratique ces notions, vous pouvez utiliser jwt.io.