Skip to main content

Qu’est-ce qu’un middleware

Un middleware est un mécanisme d’inspection et de filtrage des requêtes HTTP entrantes. Il permet d’insérer un traitement avant ou après le passage de la requête au contrôleur. Par exemple, Laravel inclut un middleware d’authentification. Si l’utilisateur n’est pas authentifié, il redirige vers l’écran de connexion ; sinon, il laisse la requête poursuivre. Au-delà de l’authentification, on peut écrire des middlewares pour la journalisation, la protection CSRF, la limitation de débit, etc. Pour les détails sur la protection CSRF de Laravel 13, consultez Protection CSRF.
Les middlewares utilisateurs sont généralement placés dans le répertoire app/Http/Middleware.

Middlewares intégrés

Laravel fournit par défaut deux groupes de middlewares : web et api. Le groupe web s’applique automatiquement à routes/web.php, et le groupe api à routes/api.php. Des alias sont configurés pour les middlewares fréquemment utilisés.

Créer un middleware

Utilisez la commande Artisan make:middleware pour créer un nouveau middleware.
app/Http/Middleware/EnsureTokenIsValid.php est généré. Écrivez la logique de traitement dans la méthode handle.
L’appel de $next($request) transmet la requête au traitement suivant. Si la condition n’est pas satisfaite, retournez une redirection ou une réponse pour interrompre le flux.

Traitement avant / après la requête

Un middleware peut exécuter du code avant ou après la requête.

Enregistrement d’un middleware

Middleware global

Pour l’exécuter sur toutes les requêtes, ajoutez-le à la pile globale via withMiddleware dans bootstrap/app.php.
append ajoute à la fin de la pile. Utilisez prepend pour l’ajouter au début.

Attribution à une route

Pour n’appliquer un middleware qu’à des routes spécifiques, appelez la méthode middleware dans la définition de route.
Passez un tableau pour appliquer plusieurs middlewares.
Pour exclure un middleware d’une route donnée, utilisez withoutMiddleware.

Alias de middleware

Définissez un alias court pour un nom de classe long dans bootstrap/app.php.
Appliquez ensuite l’alias aux routes.

Groupes de middlewares

Regroupez plusieurs middlewares sous une clé pour faciliter leur application aux routes. Utilisez appendToGroup ou prependToGroup dans bootstrap/app.php.
Un groupe s’applique aux routes comme un middleware normal.
Pour ajouter des middlewares aux groupes web ou api existants, utilisez les méthodes dédiées.

Paramètres de middleware

Un middleware peut recevoir des paramètres additionnels. Ajoutez-les après $next dans handle.
Sur la définition de route, séparez le nom du middleware et les paramètres par :.
Plusieurs paramètres sont séparés par une virgule.

Exemple : middleware de vérification d’authentification

Un exemple simple redirigeant les utilisateurs non connectés.
Appliquez-le à une route.
Laravel intègre le middleware auth pour l’authentification. Avant d’écrire le vôtre, vérifiez si un middleware existant satisfait vos besoins.

Prochaines étapes

Requêtes HTTP

Apprenez à recevoir les données de requête dans un contrôleur.
Dernière modification le 13 juillet 2026