Skip to content

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
  1. Inclure le jeton dans les requêtes
    Axios

    • Créer une instance
    • Axios Make requests Points


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

  1. : 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.
  2. 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 .
  3. Renvoie le Config

    • : L’objet de configuration modifié est renvoyé à Axios, qui l’utilisera pour effectuer la requête.

Fonctionnement Récupération

du
  1. jeton
    Avant chaque demande, l’intercepteur vérifie la présence d’un jeton stocké dans le stockage local.
  2. Ajout de
    jeton Si un jeton est trouvé, il est ajouté à l'en-tête Authorization de la demande.
  3. Envoi de la requête
    Axios envoie la requête avec l’en-tête Authorization ajouté au serveur.
  4. 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.

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.

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