🔑 Créateur et Signataire de Jeton JWT
Créez et signez des JSON Web Tokens instantanément dans votre navigateur. Personnalisez facilement votre en-tête et les données de votre charge utile en toute confidentialité.
Parlons un peu des jetons
Bonjour les amis. Vous êtes-vous déjà demandé comment les sites web se souviennent de qui vous êtes. Vous vous connectez une fois et boum, vous y êtes. Vous cliquez un peu partout. Vous achetez des choses. Vous publiez des photos de chats amusantes. Le site web sait tout simplement que c'est vous. Comment fait-il cela. Eh bien, ce n'est pas de la magie. C'est généralement un JSON Web Token.
Imaginez que vous allez à un concert très exclusif. Vous attendez dans la file. La personne à la porte vérifie votre billet. Elle vérifie que vous êtes réel. Ensuite, elle tamponne votre main. Pour le reste de la soirée, vous montrez simplement le tampon. Vous n'avez pas besoin de montrer votre billet à nouveau. Le JSON Web Token est exactement comme ce tampon sur la main. Il prouve que vous avez déjà été contrôlé. Il prouve que vous avez votre place ici.
Décomposition du jeton
Un jeton est composé de trois parties distinctes. Elles sont collées ensemble avec un caractère point. Ces parties sont l'en-tête, la charge utile et la signature. Plongeons dans ce que fait réellement chaque partie.
En premier vient l'en-tête. L'en-tête est comme l'enveloppe d'une lettre. Il vous dit ce qu'il y a à l'intérieur. Il indique généralement le type de jeton et l'algorithme utilisé pour le signer. La plupart du temps, le type est simplement JWT. L'algorithme pourrait être HS256. Ce sont des choses très simples. C'est juste un minuscule objet JSON qui est encodé en texte.
Ensuite vient la charge utile. C'est la vraie substance du jeton. C'est là que vous mettez vos données réelles. Vous pourriez y mettre un identifiant utilisateur. Vous pourriez y mettre un rôle comme administrateur ou utilisateur. Vous pourriez y mettre une date d'expiration. Ces données sont également juste un objet JSON. Nous appelons les éléments de données des réclamations. Il y a des réclamations standard et des réclamations personnalisées. Vous pouvez mettre presque tout ce que vous voulez dans la charge utile. Rappelez-vous juste que tout le monde peut le lire. Ne mettez pas de mots de passe ou de choses super secrètes dans la charge utile. Elle est encodée, pas cryptée. C'est une différence énorme.
Enfin, nous avons la signature. C'est la partie la plus critique. La signature est ce qui rend le jeton sûr. Sans signature, n'importe qui pourrait simplement changer son identifiant utilisateur pour quelqu'un d'autre. Ils pourraient se nommer administrateurs. Ce serait un désastre total. La signature empêche cela. Elle prend l'en-tête et la charge utile. Elle ajoute une clé secrète que seul le serveur connaît. Ensuite, elle fait des mathématiques complexes sur tout cela. Si quelqu'un change ne serait-ce qu'une seule lettre dans l'en-tête ou la charge utile, les mathématiques ne correspondront pas à la signature. Le serveur saura que le jeton est faux. C'est brillamment simple et en même temps extrêmement sécurisé.
Comment signer un jeton
Signer un jeton semble compliqué. C'est en fait assez direct. Vous avez besoin de votre en-tête encodé. Vous avez besoin de votre charge utile encodée. Vous avez besoin d'une clé secrète. Vous combinez l'en-tête et la charge utile avec un caractère point. Ensuite, vous les passez dans une fonction de hachage avec votre clé secrète. La fonction la plus courante est HMAC SHA256.
Une fois les mathématiques terminées, vous obtenez une chaîne de caractères. C'est votre signature. Vous l'encodez pour qu'elle puisse être envoyée en toute sécurité sur le web. Ensuite, vous l'attachez à la fin de votre en-tête et de votre charge utile avec un autre point. Maintenant, vous avez un jeton complet. Il est prêt à être envoyé au serveur. Le serveur fera exactement les mêmes mathématiques lorsqu'il recevra le jeton. Si le résultat correspond à la signature que vous avez envoyée, le serveur sait que le jeton est valide. Le serveur sait que personne ne l'a altéré.
Pourquoi nous les aimons tant
Les développeurs adorent absolument ces jetons. Pourquoi. Parce qu'ils sont sans état. C'est une chose très importante dans le monde de la programmation.
À l'époque, les serveurs devaient se souvenir de chaque personne connectée. Ils stockaient cela dans une base de données ou en mémoire. Nous appelions cela une session. Si un million de personnes se connectaient, le serveur devait se souvenir d'un million de sessions. Cela utilisait beaucoup de mémoire. C'était difficile à faire évoluer. Si vous aviez cinq serveurs, ils devaient tous partager les données de session. C'était un énorme casse-tête.
Les JSON Web Tokens corrigent tout cela. Le serveur ne se souvient de rien du tout. Le serveur vous donne simplement le jeton et vous oublie. Quand vous revenez, vous montrez le jeton. Le serveur vérifie la signature. Si la signature est valide, le serveur fait confiance au jeton. Il lit la charge utile pour voir qui vous êtes. Le serveur n'a pas besoin de chercher une session dans une base de données. C'est incroyablement rapide. Cela n'utilise presque aucune mémoire sur le serveur. Vous pouvez avoir dix serveurs ou mille serveurs. Ils peuvent tous vérifier le jeton sans se parler. Cela rend l'évolution des applications web tellement plus facile.
Erreurs courantes à éviter à tout prix
Il y a quelques pièges auxquels vous devez faire attention. Nous voyons les gens faire les mêmes erreurs encore et encore.
La première erreur est de mettre des données sensibles dans la charge utile. Je sais que j'ai déjà dit cela. Je le dis encore parce que c'est très important. La charge utile est juste encodée en base64. N'importe qui peut la décoder. Vous pouvez la décoder dans votre navigateur en ce moment même. Si vous mettez un numéro de carte de crédit dans la charge utile, tout le monde peut le voir. Mettez seulement des données qui sont sûres pour le public.
La deuxième erreur est d'utiliser une clé secrète faible. Votre clé secrète est la seule chose qui maintient le jeton sécurisé. Si quelqu'un devine votre clé secrète, il peut créer ses propres jetons. Ils peuvent prétendre être n'importe qui. Traitez votre clé secrète comme un mot de passe maître. Rendez-la longue. Rendez-la aléatoire. Ne la partagez jamais. Ne la mettez jamais dans votre code source.
La troisième erreur est de ne pas vérifier la date d'expiration. Les jetons ne devraient pas vivre éternellement. Si un jeton n'expire jamais et qu'un pirate le vole, il peut l'utiliser pour toujours. Donnez toujours à vos jetons une date d'expiration. Lorsqu'ils expirent, l'utilisateur doit en obtenir un nouveau. Cela limite les dégâts si jamais un jeton est volé.
Récapitulons tout ça
Alors voilà, les amis. C'est tout ce que vous devez savoir sur les JSON Web Tokens. C'est une invention brillante. Ils rendent le web beaucoup plus rapide et plus sûr. Ils résolvent d'énormes problèmes pour les développeurs. Ils agissent comme un passeport numérique. Vous obtenez un tampon une fois et vous êtes prêt. L'en-tête vous dit ce que c'est. La charge utile contient vos données. La signature garde tout cela en sécurité. Rappelez-vous juste de garder vos secrets secrets. Ne mettez pas de choses privées dans la charge utile. Fixez toujours une date d'expiration. Vous construirez des applications sécurisées en un rien de temps.
Maintenant, allez-y et essayez notre constructeur. C'est super amusant de jouer avec. Vous pouvez changer l'en-tête. Vous pouvez changer la charge utile. Vous pouvez ajouter votre propre clé secrète. Regardez comment le jeton change instantanément. C'est une excellente façon d'apprendre comment ils fonctionnent. Amusez-vous bien à explorer le monde des jetons sécurisés.