Qu'est-ce que le middleware ? Écoutez Maître Mieke parler du middleware laravel (photo)
Cet article présente principalement ce qu'est le middleware ? J'ai entendu Miajueshi Taiqu parler du middleware laravel (photo), qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
Qu'est-ce qu'un middleware ? Comme son nom l'indique, le middleware est le middleware, la couche intermédiaire, qui filtre certaines requêtes, comme une simple vérification de jeton ; l'article suivant explique en détail les méthodes et techniques de définition du middleware et d'enregistrement du middleware dans Laravel.
1. Définir le middleware
marqué laravel peut être défini directement dans la commande
php artisan make:middleware CheckToken
De cette façon c'est créé Il existe une classe middleware appelée CheckToken. Cette classe se trouve dans le répertoire /app/Http/Middleware :
Après avoir cliqué dessus, le code ressemblera à ceci :
Ensuite, vous pouvez y écrire quelque chose :
public function handle($request, Closure $next) { if($request->input('token')!='minxintoken'){ return redirect()->to('http://www.baidu.com'); } return $next($request); }
La signification est évidente si le champ « jeton » dans les données envoyées n'est pas. égal à minxintoken, il sautera automatiquement. Allez sur http://www.baidu.com
Bien sûr, nous n'avons créé jusqu'à présent qu'un middleware appelé CheckToken, mais il n'a pas été activé pour commencer ; maintenant ;
2. S'inscrire La soi-disant activation du middleware
consiste à enregistrer ce middleware dans l'itinéraire spécifié
Il existe deux types d'enregistrement, le middleware global ; et le middleware de route spécifié,
1 . Middleware global :
Tant que le middleware correspondant est ajouté à l'attribut de tableau $middleware de app/Http/Kernel.php, tout ira bien : (CheckToken::class écrit directement dans le texte original ne fonctionnera pas. AppHttpCheckToken ne sera pas signalé. Existe, vous devez ajouter l'espace de noms de CheckToken.php pour obtenir le CheckToken correctement)
La bonne solution est la suivante suit :
Entrez sample.test/about directement dans le navigateur. Il accédera directement à www.baidu.com, mais cela ne fonctionnera pas comme ceci :
ok L'enregistrement global se termine ici. De manière générale, les paramètres globaux ne sont ni recommandés ni approuvés, car c'est vraiment ennuyeux d'apporter le token à chaque fois ; 2. Jetons ensuite un coup d'œil au middleware pour spécifier le routage,
Ce type de middleware, Tout d'abord, vous devez attribuer une clé au middleware dans app/Http/Kernel.php et l'ajouter à $routeMiddleware dans le fichier. Il contient déjà de nombreuses clés par défaut, ajoutez-en simplement une à la fin :
Après avoir ajouté la clé, accédez au fichier de routage et activez-le.
L'accès au navigateur a pour effet de saisir directement sample.test/ et il sera redirigé vers Baidu, et de saisir sample .test/?token=minxintoken pour accéder à la page d'accueil
Route::get('/','StaticPagesController@home')->middleware('token');
Bien sûr, l'inconvénient est que vous devez taper une route pour l'utiliser, ce qui n'est pas normal. Une autre opération intéressante est qu'il y a un tableau appelé $middlewareGroups dans le noyau ; Fichier .php : Nous ajoutons le CheckToken que nous venons de créer dans le Web,
et ensuite toutes les choses dans /route/web.php nécessitent token=minxintoken pour y accéder ; Par exemple, sample.test/ sample.test/about sample.test/help, etc.;
Ce qui précède est l'intégralité du contenu de cet article, J'espère qu'il sera utile à tout le monde pour apprendre davantage. , veuillez faire attention au site Web PHP chinois ! Cours recommandés :Le dernier didacticiel vidéo pratique de Laravel Mall
Interprétation complète du framework Laravel et didacticiel vidéo pratique
Apprenez facilement Laravel - Bases
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!