Le jeton au porteur réagit
Simplification de l'authentification dans React : un guide étape par étape sur l'utilisation des jetons de porteur et d'Axios
2024-12-19
Envoi d'un jeton de porteur avec Axios dans React : un guide étape par étape
Dans les applications Web modernes, en particulier celles construites avec React, il est courant d'utiliser un jeton de porteur pour l'authentification. Ce jeton est un élément de données qui prouve que l’utilisateur est authentifié et autorisé à accéder à des ressources spécifiques. Axios
-
- Authentification de l’utilisateur
: cela se fait généralement par le biais d’un processus de connexion où l’utilisateur fournit des informations d’identification (comme le nom d’utilisateur et le mot de passe). - Authentification côté serveur
Le serveur vérifie les informations d’identification et, en cas de réussite, génère un jeton de porteur. - Stockage
de jetons
- Authentification de l’utilisateur
-
Inclure le jeton dans les requêtes
Axios- Créer une instance
- Axios Make requests Points
- Créer une instance
clés
- Intercepteurs
Axios fournit des intercepteurs qui vous permettent de modifier les requêtes et les réponses. Vous pouvez utiliser des intercepteurs pour ajouter automatiquement le jeton porteur à toutes les requêtes sortantes. - Gérez
les erreurs avec précaution, en particulier celles liées à un accès non autorisé (401 non autorisé) ou à des jetons non valides. - Expiration du jeton
Soyez conscient de l’expiration du jeton. Mettez en place un mécanisme d’actualisation du jeton lorsqu’il expire. - sécurité
Assurez-vous que le jeton est stocké en toute sécurité. Évitez de le stocker directement dans l’URL ou en texte brut dans le stockage local. Envisagez d’utiliser un mécanisme de stockage sécurisé similaire ou avec des mesures de sécurité appropriées.
Exemple avec des intercepteurs
: Découpage du code
-
-
: Création d’une instance Axios :
- création d’une nouvelle instance Axios.
- : Définit l’URL de base pour toutes les requêtes effectuées avec cette instance. Remplacez-la par l’URL réelle de votre API.
-
Intercepter les demandes
- : Configure un intercepteur de demandes. Un intercepteur est une fonction qui modifie les requêtes et les réponses avant qu’elles ne soient envoyées ou reçu.
- : Cela récupère le jeton porteur à partir du stockage local.
- : Si un jeton est trouvé :
- Bearer ${token} : Cela ajoute l’en-tête Authorization à la demande avec le jeton. Le format est .
-
Renvoie le Config
- : L’objet de configuration modifié est renvoyé à Axios, qui l’utilisera pour effectuer la requête.
Fonctionnement Récupération
- jeton
Avant chaque demande, l’intercepteur vérifie la présence d’un jeton stocké dans le stockage local. - Ajout de
jeton Si un jeton est trouvé, il est ajouté à l'en-tête Authorization de la demande. - Envoi de la requête
Axios envoie la requête avec l’en-tête Authorization ajouté au serveur. - Vérification du serveur
Le serveur reçoit la demande et vérifie le jeton pour authentifier l’utilisateur.
En utilisant le
-
stockage local, le jeton est stocké en toute sécurité côté client. - Ajout automatique de jetons
Le jeton est automatiquement ajouté à toutes les demandes, ce qui réduit le besoin de traitement manuel de chaque demande. - Gestion centralisée des jetons
La logique de gestion des jetons est centralisée en un seul endroit.
Gérez
-
les erreurs avec précaution, en particulier celles liées à un accès non autorisé (401 Non autorisé) ou des jetons non valides. - Implémentez
un mécanisme pour actualiser le jeton lorsqu’il expire. - Sécurité du jeton
Assurez-vous que le jeton est stocké en toute sécurité et qu’il n’est pas exposé à un accès non autorisé.
Méthodes alternatives pour envoyer des jetons au porteur avec Axios
Bien que l’utilisation d’intercepteurs soit une approche courante et efficace, voici quelques méthodes alternatives pour envoyer des jetons au porteur avec Axios :
Ajout manuel d’en-tête
-
- Avantages Simple
et direct. - Nécessite l’ajout manuel d’un
jeton pour chaque requête, ce qui la rend moins efficace et sujette aux erreurs.
- Avantages Simple
Utilisant Instance Axios avec en-têtes
par défaut
-
Créez une instance Axios avec le jeton comme en-tête
par défaut- Avantages
Simplifie plusieurs requêtes adressées à la même API. - Moins
flexible pour les requêtes adressées à différentes API ou à celles qui ne nécessitent pas d'authentification.
- Avantages
Choisir la bonne méthode :
- Instance Axios avec en-têtes par défaut
Idéal pour les requêtes fréquentes adressées à la même API avec une authentification cohérente. - Convient
pour les demandes occasionnelles ou lorsqu’un contrôle plus granulaire de l’utilisation du jeton est requis. - Intercepteurs
Idéal pour les gestion des jetons et ajout automatique de jetons à toutes les demandes.
-
Choisissez une méthode qui s'aligne sur la structure de votre projet et facilite la maintenance de votre code. - Gestion des erreurs
Gérez les erreurs avec précaution, en particulier les erreurs non autorisées 401. - Actualisation du
jeton Implémentez un mécanisme pour actualiser le jeton lorsqu’il expire. - Sécurité des jetons
Privilégiez toujours la sécurité des jetons. Évitez d’exposer les jetons dans le code ou les journaux côté client.
Jeton REST ReactJS