


Laravel Middleware (middleware) Combat pratique: contrôle de l'autorisation et journalisation
Dans Laravel, le middleware est utilisé pour implémenter le contrôle et la journalisation de l'autorisation. 1) Créez du middleware de contrôle d'autorisation et décidez d'autoriser l'accès en vérifiant les autorisations des utilisateurs. 2) Créez du middleware de journalisation pour enregistrer des informations détaillées sur les demandes et les réponses.
introduction
Dans le développement de Laravel, le middleware est un outil puissant et flexible qui peut exécuter une logique spécifique avant ou après la demande atteint l'application. Aujourd'hui, nous plongerons dans la façon d'utiliser le middleware pour implémenter le contrôle et la journalisation des autorisations, deux fonctionnalités qui sont très courantes et importantes dans les projets réels. Grâce à cet article, vous apprendrez à créer et à utiliser des middleware, à comprendre comment cela fonctionne et à maîtriser certains conseils pratiques et meilleures pratiques.
Examen des connaissances de base
Dans Laravel, le middleware est la couche intermédiaire qui gère les demandes HTTP. Ils peuvent être utilisés pour filtrer les demandes, modifier les demandes et les réponses et exécuter une logique commune. Le concept de middleware est similaire à un pipeline. Lorsque les demandes passent par ce pipeline, elles peuvent être interceptées et traitées par middleware.
Laravel fournit plusieurs middleware intégrés, tels que auth
Middleware pour vérifier si l'utilisateur est connecté csrf
pour empêcher les attaques de contrefaçon de demande croisée. Nous pouvons facilement créer des middleware personnalisés pour répondre aux besoins spécifiques.
Analyse du concept de base ou de la fonction
Définition et fonction du middleware
Le middleware est une classe de Laravel qui implémente les méthodes handle
. Cette méthode reçoit l'objet de demande et une fermeture (représentant la prochaine étape de traitement de la demande), peut traiter la demande, puis décider de passer la demande au middleware suivant ou de renvoyer directement la réponse.
Le middleware a une fonction très large, de la journalisation simple de demande au contrôle complexe d'autorisation, il peut être implémenté via middleware. Son avantage est qu'il peut être retiré du contrôleur, ce qui rend le code plus clair et plus maintenable.
Un exemple de middleware simple:
namespace app \ http \ middleware; Utiliser la fermeture; Utiliser illuminate \ http \ request; Classe LogRequestMiddleware { Poignée de la fonction publique (demande $ demande, fermeture $ suivant) { // Journal du journal avant que la demande ne soit traitée \ log :: info ('requête reçue:'. $ Request-> méthode (). ''. $ Request-> url ()); // Passez la demande au middleware ou contrôleur suivant Retour $ Next ($ request); } }
Comment ça marche
Lorsqu'une demande entre dans une application Laravel, elle passe par un pipeline middleware. Chaque middleware peut traiter la demande, puis décider de passer la demande au middleware suivant ou de renvoyer la réponse directement.
L'Ordre d'exécution du middleware est défini par $middleware
et $routeMiddleware
dans le fichier Kernel.php
. Les demandes sont passées par le middleware dans l'ordre dans ces tableaux.
Lors du traitement d'une demande, le middleware peut:
- Modifier l'objet de demande
- Exécuter une logique (comme la journalisation)
- Décidez de passer la demande au middleware ou contrôleur suivant
- Modifier l'objet de réponse (dans la méthode
terminate
)
Le principe de travail du middleware est similaire au modèle d'oignon. Demandes entrent à partir de la couche externe, traitées par plusieurs middleware, et enfin arrivez au contrôleur, puis passez-la de la couche intérieure à la couche extérieure, puis renvoyez-la au client après le traitement par le middleware.
Exemple d'utilisation
Contrôle d'autorisation Middleware
Dans les projets réels, le contrôle de l'autorisation est une exigence commune. Nous pouvons créer un middleware pour vérifier si l'utilisateur a la permission d'accéder à un certain itinéraire.
namespace app \ http \ middleware; Utiliser la fermeture; Utiliser illuminate \ http \ request; Utiliser illuminate \ support \ FACADES \ Auth; Class CheckPermissionMiddleware { Poignée de la fonction publique (demande $ demande, fermeture $ suivant, autorisation $) { if (auth :: user () -> can ($ permission)) { retourner $ suivant ($ demande); } return réponse () -> json (['error' => 'non autorisé'], 403); } }
Lorsque vous utilisez ce middleware, vous pouvez spécifier les autorisations requises dans la définition de routage:
Route :: get ('/ admin', function () { // Seuls les utilisateurs avec l'autorisation «manage-admin» peuvent y accéder}) -> middleware («permission: manage-admin»);
Journalisation du middleware
La journalisation est également une exigence commune, nous pouvons créer un middleware pour enregistrer les détails de chaque demande.
namespace app \ http \ middleware; Utiliser la fermeture; Utiliser illuminate \ http \ request; Utiliser illuminate \ support \ FACADES \ Log; Classe LogRequestMiddleware { Poignée de la fonction publique (demande $ demande, fermeture $ suivant) { // Journal des informations sur la demande de journal :: info («demande reçue», [ 'méthode' => $ demande-> méthode (), 'url' => $ request-> url (), 'Headers' => $ request-> Headers-> all (), 'body' => $ demande-> all (), ])); retourner $ suivant ($ demande); } Fonction publique Termine (demande $ demande, $ Response) { // Enregistrer le journal des informations de réponse :: info ('réponse envoyée', [ 'status' => $ réponse-> getStaturScode (), 'contenu' => $ réponse-> getContent (), ])); } }
Erreurs courantes et conseils de débogage
Certains problèmes courants peuvent survenir lors de l'utilisation du middleware:
- Problème de commande middleware : si le middleware est incorrectement exécuté, cela peut entraîner des erreurs logiques. Par exemple, la vérification de l'autorisation Middleware doit être exécutée avant de journaliser le middleware pour éviter les demandes de journalisation non autorisées.
- Erreur de passage des paramètres middleware : lors de l'utilisation du middleware avec des paramètres, assurez-vous que le passage des paramètres est correct. Par exemple, dans
CheckPermissionMiddleware
, le paramètre$permission
doit être passé correctement. - Middleware non enregistré : assurez-vous que le middleware est correctement enregistré dans le fichier
Kernel.php
, sinon le middleware ne sera pas exécuté.
Lors du débogage de ces problèmes, vous pouvez utiliser le système de journalisation de Laravel pour enregistrer l'exécution du middleware ou utiliser des outils de débogage (tels que XDebug) pour suivre le processus de demandes.
Optimisation des performances et meilleures pratiques
Il existe des optimisations de performances et des meilleures pratiques à noter lors de l'utilisation de middleware:
- Évitez d'effectuer des opérations longues en middleware : le middleware doit être aussi léger que possible pour éviter d'effectuer des requêtes de base de données ou d'autres opérations longues dans le middleware pour éviter d'affecter le temps de réponse de la demande.
- En utilisant le cache : dans le middleware de vérifier l'autorisation, vous pouvez utiliser Cache pour stocker les informations d'autorisation de l'utilisateur pour éviter d'interroger la base de données à chaque fois que vous demandez.
- Optimisation de la journalisation : Dans le middleware de journalisation, le niveau de détail du journal peut être ajusté en fonction de l'environnement (tel que l'environnement de production ou l'environnement de développement) pour éviter d'enregistrer trop d'informations sur les journaux dans l'environnement de production.
Lors de l'écriture de middleware, vous devez également prêter attention à la lisibilité et à la maintenabilité du code:
- Utilisez la dénomination claire : la classe et les noms de méthode du middleware doivent exprimer clairement leurs fonctions.
- Ajoutez des commentaires : ajoutez des commentaires aux parties clés du middleware pour expliquer ses principes de rôle et de mise en œuvre.
- Gardez la responsabilité unique du middleware : chaque middleware doit être responsable d'une seule fonction, en évitant de mettre plusieurs logiques non pertinentes dans le même middleware.
Grâce à cet article, vous auriez dû maîtriser comment utiliser le middleware dans Laravel pour implémenter le contrôle et la journalisation des autorisations. Espérons que ces connaissances et techniques fonctionneront dans votre projet et vous aideront à écrire plus efficace et plus facile à maintenir le code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous devez d'abord terminer la certification de compte d'entreprise ou de compte professionnel et ouvrir un magasin pour vous assurer que le compte n'est pas violé et se conforme à l'accès à l'industrie, puis mettre à jour l'application vers la dernière version pour trouver l'entrée.

L'application Xiaohongshu Qianfan fournit des fonctions telles que la gestion des commandes de produits, la bibliothèque vocale du service client, la version chronométrée du contenu, l'expédition automatique des produits virtuels et l'allocation d'autorisation de sous-compte et prend en charge un fonctionnement mobile efficace; Cependant, certains utilisateurs ont signalé des problèmes de performances tels que le retard dans le téléchargement des photos et l'envoi de messages retardés. Il est recommandé d'utiliser et de tenir l'application à jour dans un environnement Wi-Fi pour améliorer l'expérience.

Le problème anormal des étapes de mouvement WeChat peut être résolu en modifiant les données de santé du système, en utilisant des outils de simulation tiers, en vérifiant les paramètres d'autorisation et en rafraîchissant manuellement.

Introduction au réguasme: le réguasme est un outil utilisé pour enregistrer des assemblages. Il lit les métadonnées dans l'assemblage et ajoute les entrées nécessaires au registre. Regasm.exe est un processus de fichier juridique développé par Microsoft Corporation et appartient à Microsoft.NetAssemblyRegistation Urutility. Remarque: Étant donné que le chemin de Regasm.exe n'est pas ajouté à la variable d'environnement de chemin du système, il ne sera pas reconnu directement à l'aide de la commande Regasm. Pour plus de détails, veuillez consulter la documentation officielle de Microsoft: https://docs.microsoft.com/en-us/dotnet/fram

Vérifiez d'abord l'utilisation du stockage iCloud, entrez l'espace de stockage iCloud via l'AppleID dans les paramètres pour analyser l'occupation de chaque application; Ensuite, optimiser le stockage de photos, activer "Optimiser l'espace de stockage de l'iPhone" et effacer l'album "récemment supprimé"; Gérez ensuite les sauvegardes de l'appareil, supprimez les anciens sauvegardes et fermez la fonction de sauvegarde des applications non essentielles; Ensuite, nettoyez les informations et les pièces jointes des e-mails, définissez la période de conservation des informations et supprimez manuellement les fichiers volumineux; Enfin, désinstaller les applications iCloud rarement utilisées, fermer leur synchronisation et supprimer complètement les données pertinentes.

Gaode Map prend en charge la visualisation, l'enregistrement, le partage et la gestion des empreintes de voyage. Après vous être connecté, vous pouvez saisir «kilométrage de voyage» ou «vie d'empreinte» sur la page «My» pour voir les trajectoires historiques, y compris des informations telles que le point de départ, le point final, le kilométrage, etc.; Activez la fonction "Trail Record" à travers la colonne "Navigation" pour suivre l'auto-conduite, le cyclisme et d'autres itinéraires en temps réel; Les trajectoires enregistrées peuvent être partagées avec des amis via WeChat, SMS, etc., ou des captures d'écran peuvent être prises pour générer des photos; Les utilisateurs peuvent également glisser à gauche pour supprimer un seul enregistrement ou nettoyer les données historiques pour assurer la confidentialité et la sécurité du stockage.

Tout d'abord, activez le mode de bureau via le menu intégré. S'il n'est pas possible, modifiez manuellement le mode UA en ordinateur. Enfin, vous pouvez utiliser d'autres navigateurs pour y accéder.

DebotNet DebotNet est un outil pour protéger les paramètres et données de confidentialité de Windows 10. DebotNet est essentiellement un outil portable libre qui peut nous aider à contrôler et à gérer les configurations liées à la confidentialité dans Windows 10 et à assurer la sécurité des données personnelles des utilisateurs. En fait, si vous souhaitez protéger vos données de confidentialité, vous constaterez qu'il y a encore beaucoup de choses pour améliorer les paramètres de confidentialité par défaut de Windows 10. Chaque fois que nous configurons un nouvel ordinateur pour notre environnement domestique ou de travail ou la mise à jour des paramètres actuels, nous devons toujours prendre le temps de vérifier soigneusement tous les paramètres de confidentialité pendant le processus d'installation et de configuration et de nous assurer que nos informations de confidentialité sont aussi sûres possibles. Pour la protection
