Rôle du module CORS

Le module CORS sert principalement à :

  1. Contrôler l'accès aux ressources : Il permet de définir quels domaines externes sont autorisés à accéder aux ressources de votre API.
  2. Résoudre les problèmes de sécurité du navigateur : Par défaut, les navigateurs bloquent les requêtes cross-origin pour des raisons de sécurité (politique de même origine). CORS permet de contourner cette restriction de manière sécurisée.
  3. Configurer les en-têtes HTTP : Il ajoute automatiquement les en-têtes HTTP nécessaires comme Access-Control-Allow-Origin pour autoriser les requêtes cross-origin.

Dans le contexte d'une API JWT

Dans un projet utilisant JWT (JSON Web Tokens) pour l'authentification :

Exemple d'utilisation

Copy
const express = require('express');
const cors = require('cors');
const jwt = require('jsonwebtoken');

const app = express();

// Configuration CORS basique (permet toutes les origines)
app.use(cors());

// Configuration CORS avancée
app.use(cors({
  origin: ['<https://monsite.com>', '<https://app.monsite.com>'], // Liste des domaines autorisés
  methods: ['GET', 'POST'], // Méthodes HTTP autorisées
  allowedHeaders: ['Content-Type', 'Authorization'], // En-têtes autorisés
  credentials: true // Autorise l'envoi de cookies cross-origin
}));

// Routes protégées par JWT...

<aside> ☝

Sans le module CORS correctement configuré, votre API JWT fonctionnerait parfaitement en local, mais les applications frontend hébergées sur d'autres domaines ne pourraient pas communiquer avec elle, rendant impossible l'authentification et l'utilisation des tokens JWT.

</aside>