Maison  >  Article  >  cadre php  >  Comment masquer le routage dans Laravel

Comment masquer le routage dans Laravel

PHPz
PHPzoriginal
2023-04-14 16:54:08601parcourir

Laravel est un framework PHP populaire, et ses développeurs nous fournissent un système de routage très puissant. L'utilisation du routage dans Laravel peut facilement mapper les URL à un code de logique métier back-end spécifique, nous permettant d'écrire facilement des services API RESTful et des pages Web. Mais dans les applications réelles, nous souhaitons parfois que certaines routes ne soient accessibles que dans des circonstances spécifiques. À l'heure actuelle, la fonction de routage caché fournie par Laravel est très utile.

Qu'est-ce que le routage caché de Laravel ?

Le routage caché de Laravel signifie que le chemin de routage n'est pas directement affiché dans la définition de routage. Le chemin n'est accessible que via des paramètres spécifiques ou en appelant une méthode spécifique. Le but du routage caché est de protéger certaines données sensibles, telles que la réinitialisation du mot de passe, la connexion et d'autres interfaces d'exploitation, contre tout accès malveillant.

Comment implémenter le routage caché dans Laravel ?

Il existe de nombreuses façons d'implémenter le routage caché dans Laravel. Voici deux méthodes couramment utilisées.

  1. Utilisation de routes nommées

Les routes nommées de Laravel fournissent la fonctionnalité permettant de définir des alias de route. Dans la définition du routage, on peut utiliser la méthode "->name()" pour définir un alias, par exemple :

Route::get('index', 'HomeController@index')->name('home');

Cette ligne de code définit un alias de routage nommé "home", qui correspond au chemin 'index' .

Lors de l'appel de l'itinéraire, il suffit d'utiliser un alias pour obtenir le même effet d'accès que le chemin :

<a href="{{ route(&#39;home&#39;) }}">Home</a>

Dans ce cas, l'utilisateur ne peut accéder à l'itinéraire qu'en cliquant sur le lien URL, et ne peut pas saisir manuellement le Accès au chemin URL.

  1. Utilisation d'un middleware

Laravel fournit une fonction middleware (Middleware) pour traiter les demandes et les réponses. Nous pouvons utiliser les caractéristiques du middleware pour contrôler l'accès aux routes. Tout d'abord, nous devons créer un middleware personnalisé :

php artisan make:middleware CheckPass

Cette ligne de code créera une classe middleware nommée CheckPass dans le répertoire app/Http/Middleware. Nous pouvons définir une méthode de vérification des paramètres d'entrée dans cette classe, par exemple :

class CheckPass
{
    public function handle($request, Closure $next)
    {
        if ($request->has('password') && $request->input('password') === 'password') {
            return $next($request);
        }

        return abort(403, 'Unauthorized action.');
    }
}

Un middleware CheckPass est défini ici pour vérifier si le paramètre de mot de passe transmis par l'utilisateur est "mot de passe", et s'il remplit les conditions, l'accès est autorisé, sinon renvoie une page d'erreur.

Ensuite, nous utilisons cette protection middleware dans la définition de la route :

Route::get('/example', 'ExampleController@showResult')->middleware('protect');

Lors de l'appel de la route, l'utilisateur doit envoyer un paramètre appelé "mot de passe" via la requête GET pour obtenir la réponse correcte.

Résumé

Le système de routage fourni par Laravel est très flexible et facile à utiliser, mais dans les scénarios d'application réels, nous avons souvent besoin d'une logique de traitement plus avancée, telle que le routage caché de Laravel. Nous pouvons utiliser un routage nommé ou un middleware pour implémenter cette fonction, ce qui peut offrir aux utilisateurs une meilleure expérience tout en protégeant la sécurité de nos données et applications.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn