Image de l'article Authentification et autorisation avec JWT

49. Authentification et autorisation avec JWT

L'authentification et l'autorisation sont des composants essentiels de toute application Web. Lorsque nous parlons d'authentification, nous faisons référence au processus de vérification de l'identité d'un utilisateur, tandis que l'autorisation est le processus de vérification de ce qu'un utilisateur authentifié est autorisé à faire. À l'ère moderne du développement Web, l'une des méthodes les plus populaires pour gérer l'authentification et l'autorisation est JWT, ou JSON Web Token.

JWT est un standard ouvert (RFC 7519) qui définit un moyen compact et sécurisé de transmettre des informations entre les parties sous la forme d'un objet JSON. Ces informations peuvent être vérifiées et fiables car elles sont signées numériquement. Les JWT peuvent être signés à l'aide d'un secret (avec l'algorithme HMAC) ou d'une paire de clés publique/privée utilisant RSA ou ECDSA.

Comment fonctionne JWT ?

Un JWT est divisé en trois parties : en-tête, charge utile et signature. L'en-tête se compose généralement de deux éléments : le type de jeton, qui est JWT, et l'algorithme de signature, tel que HMAC SHA256 ou RSA. La charge utile contient les réclamations ou déclarations concernant l'utilisateur et toute information supplémentaire que vous souhaitez transmettre. La signature est ce qui valide le jeton et est créée à l'aide de l'en-tête, de la charge utile, d'un secret et de l'algorithme spécifié dans l'en-tête.

Lorsqu'un utilisateur se connecte à votre application, vous créez un JWT sur le serveur et le renvoyez au client. Le client stocke ensuite ce jeton d'une manière ou d'une autre, généralement dans un cookie ou localStorage. Ensuite, dans chaque requête ultérieure que le client adresse au serveur, il inclut ce jeton. Le serveur peut alors vérifier la validité du jeton, considérer que l'utilisateur est authentifié et traiter la demande.

Pourquoi utiliser JWT ?

L'utilisation de JWT pour l'authentification et l'autorisation présente plusieurs avantages. Premièrement, ils sont apatrides, ce qui signifie qu’ils n’ont pas besoin d’être stockés sur le serveur. C'est idéal pour l'évolutivité, car quel que soit le serveur qui répond à la requête, tant qu'il dispose de la clé secrète, il peut vérifier le JWT. Deuxièmement, ils sont compacts, ce qui les rend rapides à diffuser. Troisièmement, ils sont sécurisés car ils sont signés et peuvent être cryptés.

Implémentation de JWT en HTML, CSS et Javascript

Pour implémenter JWT dans une application HTML, CSS et Javascript, vous aurez besoin d'une bibliothèque JWT pour le backend, telle que jsonwebtoken pour Node.js, et d'un moyen de stocker et de diffuser le JWT sur le frontend.

Sur le backend, lorsqu'un utilisateur se connecte, vous créerez un JWT comme ceci :

var jwt = require('jsonwebtoken');
var token = jwt.sign({ userID: user.id }, 'votre-clé-secrète');

Où 'user.id' correspond aux informations que vous souhaitez encoder dans le jeton et 'votre-clé-secrète' est la clé que vous utiliserez pour signer le jeton.

Sur le frontend, vous stockerez le JWT dans un cookie ou localStorage et l'inclurez dans toutes les requêtes adressées au serveur :

localStorage.setItem('jeton', jeton);
axios.defaults.headers.common['Authorization'] = 'Bearer' + jeton ;

Ensuite, dans le backend, vous vérifierez le JWT à chaque requête :

var jwt = require('jsonwebtoken');
jwt.verify(token, 'votre-clé-secrète', function(err, décodé) {
  si (erreur) {
    // le jeton n'est pas valide
  } autre {
    // le token est valide, poursuivez la requête
  }
});

Vous pouvez ainsi facilement implémenter l'authentification et l'autorisation dans votre application HTML, CSS et Javascript à l'aide de JWT. Il s'agit d'une méthode puissante et flexible qui est devenue une norme dans le secteur du développement Web.

Conclusion

JWT est un outil puissant d'authentification et d'autorisation dans les applications Web. Il est sans état, compact et sécurisé, ce qui le rend idéal pour les applications modernes. Avec une solide compréhension du fonctionnement des JWT et de la manière de les implémenter en HTML, CSS et Javascript, vous serez bien équipé pour créer des applications Web sécurisées et évolutives.

Répondez maintenant à l’exercice sur le contenu :

Qu'est-ce que JWT et comment fonctionne-t-il en matière d'authentification et d'autorisation dans les applications Web ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Sécurité Web : CORS, CSRF, XSS

Page suivante de lebook gratuit :

100Sécurité Web : CORS, CSRF, XSS

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte