17.2. Authentification et autorisation dans les API NodeJS : autorisation avec rôles et autorisations

Lors de la création d'API robustes et sécurisées dans NodeJS, l'authentification et l'autorisation sont des aspects essentiels qui garantissent la sécurité et l'intégrité des données. L'authentification est le processus de vérification de l'identité de l'utilisateur, tandis que l'autorisation est le processus de vérification des autorisations de l'utilisateur authentifié. Dans ce chapitre, nous nous concentrerons sur l'autorisation avec des rôles et des autorisations.

Comprendre les rôles et les autorisations

Dans une application, différents utilisateurs peuvent avoir différents niveaux d'accès. Par exemple, dans un système de gestion de projet, un utilisateur peut être un « administrateur », un « gestionnaire » ou un « contributeur ». Chacun de ces rôles peut avoir des autorisations différentes. Un « administrateur » peut être autorisé à créer, lire, mettre à jour et supprimer n'importe quel projet, tandis qu'un « gestionnaire » peut uniquement créer, lire et mettre à jour des projets, mais pas les supprimer. Un « Contributeur » ne peut lire que les projets. Ce sont les rôles et les autorisations.

Mise en œuvre de l'autorisation avec des rôles et des autorisations dans NodeJS

Pour implémenter l'autorisation avec des rôles et des autorisations dans NodeJS, nous devons d'abord créer un modèle utilisateur qui inclut le rôle de l'utilisateur. Ensuite, nous devons créer un rôle middleware qui vérifie le rôle de l'utilisateur et accorde ou refuse l'accès en fonction de ce rôle.

1. Création du modèle utilisateur

Nous pouvons utiliser Mongoose, un ODM (Object Data Modeling) populaire pour MongoDB, pour créer notre modèle utilisateur. Voici un exemple de ce à quoi pourrait ressembler le modèle utilisateur :


const mangouste = require('mangouste');

const UserSchema = nouvelle mangouste.Schema ({
  nom : chaîne,
  email : chaîne,
  mot de passe : chaîne,
  rôle: {
    tapez : chaîne,
    enum : ['Admin', 'Manager', 'Contributeur'],
    par défaut : 'Contributeur'
  }
});

module.exports = mongoose.model('Utilisateur', UserSchema);

2. Création de la fonction middleware

Ensuite, nous devons créer une fonction middleware qui vérifie le rôle de l'utilisateur. Nous pouvons le faire en utilisant JWT (JSON Web Token), une norme de jeton d'accès qui permet l'authentification entre deux parties. Lorsqu'un utilisateur s'authentifie, un jeton JWT est généré et envoyé à l'utilisateur. Ce jeton contient des informations sur l'utilisateur, y compris son rôle. Voici un exemple de ce à quoi pourrait ressembler la fonction middleware :


const jwt = require('jsonwebtoken');

fonction authRole(rôle) {
  retour (req, res, suivant) => {
    const token = req.header('auth-token');
    if (!token) return res.status(401).send('Accès refusé');

    essayer {
      const vérifié = jwt.verify(token, process.env.TOKEN_SECRET);
      if (verified.role !== role) return res.status(403).send('Forbidden');
      req.user = vérifié ;
      suivant();
    } attraper (erreur) {
      res.status(400).send('Jeton invalide');
    }
  } ;
}

module.exports = authRole ;

Grâce à cette fonction middleware, nous pouvons protéger nos itinéraires en fonction du rôle de l'utilisateur. Par exemple, nous pouvons protéger le chemin de suppression du projet afin que seuls les utilisateurs « Administrateur » puissent y accéder :


const express = require('express');
const routeur = express.Router();
const authRole = require('../middleware/authRole');

router.delete('/project/:id', authRole('Admin'), (req, res) => {
  // Supprimer le projet
});

En résumé, l'autorisation avec des rôles et des autorisations est un élément essentiel de la création d'API sécurisées dans NodeJS. Il vous permet de contrôler l'accès aux différentes parties de votre application en fonction du rôle de l'utilisateur. La mise en œuvre correcte de cela peut aider à empêcher tout accès non autorisé et à protéger les données de votre application.

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

Quel est le rôle de l'autorisation avec des rôles et des autorisations dans la création d'API sécurisées dans NodeJS ?

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

Vous avez raté! Essayer à nouveau.

Image de l'article Authentification et autorisation dans l'API NodeJS : Mise en place du login avec les réseaux sociaux

Page suivante de lebook gratuit :

101Authentification et autorisation dans l'API NodeJS : Mise en place du login avec les réseaux sociaux

5 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