Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
Laravel

Laravel: Créer et utiliser un middleware

Un cours complet pour maîtriser Laravel: Créer et utiliser un middleware.

0 chapitres 0 QCM Accès gratuit
  1. Objectifs

    • Etre capable de créer un middleware sous Laravel
    • Savoir utiliser un middleware sous Laravel
  2. Présentation

  3. Créer middleware

    • La façon la plus simple de créer un middleware est d’utiliser Artisan. Appeler la commande make:middleware a pour effet de créer une structure de base de middleware dans le dossier réservé à cet usage : app/Http/Middleware.
    • php artisan make:middleware EnsureTokenIsValid
    • Cette commande placera une nouvelle classe EnsureTokenIsValid dans le répertoire app/Http/Middleware.
    • Dans ce middleware, nous n'autoriserons l'accès à la route que si l'entrée token fournie correspond à une valeur spécifiée. Sinon, nous redirigerons les utilisateurs vers l'URI home:
    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    
    class EnsureTokenIsValid
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            if ($request->input('token') !== 'my-secret-token') {
                return redirect('home');
            }
    
            return $next($request);
        }
    }
  4. Enregistrement d'un middleware

    • Maintenant que nous avons créé un middleware, nous devons informer l'application que le middleware existe. Si vous souhaitez qu'un middleware s'exécute à chaque demande, accédez à app/Http/kernel.php et ajoutez le middleware au Kernel.
  5. Activité

    • Étape 1: créer un middleware
      • Dans cette étape, nous devons créer un middleware personnalisé dans un projet basé sur laravel. Alors ouvrons votre invite de commande et exécutons la commande ci-dessous:
      • php artisan make:middleware CheckStatus
      • Laravel Créer et utiliser un middleware

      • Après avoir créé avec succès le middleware, accédez à app/http/kernel.php et enregistrez votre middleware personnalisé ici:
      <?php
       
       
      namespace App\Http;
       
       
      use Illuminate\Foundation\Http\Kernel as HttpKernel;
       
       
      class Kernel extends HttpKernel
      {
          ....
       
       
          /**
           * The application's route middleware.
           *
           * These middleware may be assigned to groups or used individually.
           *
           * @var array
           */
          protected $routeMiddleware = [
              ....
              'checkStatus' => \App\Http\Middleware\CheckStatus::class,
          ];
      }
    • Après avoir enregistré avec succès votre middleware dans le projet laravel, accédez à app/http/middleware et implémentez votre logique ici: app/Http/Middleware/CheckStatus.php
    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    use Illuminate\Http\Request;
    
    class CheckStatus
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle(Request $request, Closure $next)
        {
            if (auth()->user()->status == 'active') {
                return $next($request);
            }
                return response()->json('Your account is inactive');
        }
    }
    
  6. Étape 2: Ajouter une route
    • Dans cette étape, nous allons simplement créer une route et utiliser un middleware personnalisé ici. Filtrez chaque requête http et protégez les routes:
    //routes/web.php
     
     Route :: middleware (['checkStatus']) -> group (function () { 
     
    Route :: get ('home', ' HomeController @ home '); 
     
    });
  7. Étape 3: Ajouter une méthode dans le contrôleur
    • Nous allons maintenant créer un langage de nom de méthode et vérifier: app/Http/Contrôleurs/HomeController.php
    <?php
     
     namespace App\Http\Controllers;
     
     use Illuminate\Http\Request;
     class HomeController extends Controller
     {
         public function home()
         {
             dd('You are active');
         }
     }
    Source:
    • https://www.tutsmake.com/laravel-6-custom-middleware-tutorial-example/