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 Artisanmake: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.
$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 viawithMiddleware 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éthodemiddleware dans la définition de route.
withoutMiddleware.
Alias de middleware
Définissez un alias court pour un nom de classe long dansbootstrap/app.php.
Groupes de middlewares
Regroupez plusieurs middlewares sous une clé pour faciliter leur application aux routes. UtilisezappendToGroup ou prependToGroup dans bootstrap/app.php.
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.
:.
Exemple : middleware de vérification d’authentification
Un exemple simple redirigeant les utilisateurs non connectés.Prochaines étapes
Requêtes HTTP
Apprenez à recevoir les données de requête dans un contrôleur.