0
0
Laravelframework~10 mins

Registering middleware in Laravel - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Registering middleware
Create Middleware Class
Add Middleware to Kernel
Assign Middleware to Route or Group
Request Hits Route
Middleware Executes
Request Proceeds or Blocked
Middleware is created, registered in the kernel, assigned to routes, then runs on requests to control access or modify requests.
Execution Sample
Laravel
<?php
// In app/Http/Kernel.php
protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
];
This code registers the 'auth' middleware by linking its name to the middleware class in the Kernel.
Execution Table
StepActionDetailsResult
1Create Middleware ClassGenerate middleware file with handle methodMiddleware class ready
2Register MiddlewareAdd middleware to $routeMiddleware in Kernel.php'auth' key linked to Authenticate class
3Assign MiddlewareUse 'auth' in route or group middlewareRoutes protected by auth middleware
4Request ReceivedUser sends request to protected routeRequest enters middleware pipeline
5Middleware ExecutesAuthenticate::handle checks user authRequest allowed or redirected
6Request ProceedsIf authenticated, request continues to controllerController processes request
7Request BlockedIf not authenticated, middleware redirectsUser sent to login page
💡 Execution stops when request is either allowed to proceed or redirected by middleware.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 5Final
$routeMiddleware['auth']undefined\App\Http\Middleware\Authenticate::class\App\Http\Middleware\Authenticate::classMiddleware instanceMiddleware allows or blocks request
Request StatusNew requestNew requestAssigned to auth middlewareChecked authenticationAllowed or redirected
Key Moments - 3 Insights
Why do we add middleware to the Kernel before using it in routes?
Middleware must be registered in the Kernel's $routeMiddleware array so Laravel knows what class to run when the middleware name is used in routes. See execution_table step 2.
What happens if the middleware blocks the request?
If the middleware detects the user is not authenticated, it redirects the request (step 7), stopping it from reaching the controller. This prevents unauthorized access.
Can middleware be assigned to multiple routes?
Yes, once registered, the middleware name can be used on any route or group to protect multiple routes easily (step 3).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the result after step 2?
AMiddleware redirects user
B'auth' key linked to Authenticate class
CRequest proceeds to controller
DMiddleware class deleted
💡 Hint
Check the 'Result' column for step 2 in the execution_table.
At which step does the middleware check if the user is authenticated?
AStep 3
BStep 7
CStep 5
DStep 1
💡 Hint
Look for 'Authenticate::handle checks user auth' in the 'Details' column.
If middleware is not registered in the Kernel, what happens when used in a route?
ALaravel throws an error because it can't find the middleware class
BMiddleware runs normally
CRequest is always allowed
DRequest is always blocked
💡 Hint
Think about the importance of step 2 in the execution_table.
Concept Snapshot
Register middleware by:
1. Creating middleware class with handle method.
2. Adding it to $routeMiddleware in app/Http/Kernel.php.
3. Using middleware name in routes or groups.
Middleware runs on requests to allow or block access.
Full Transcript
Registering middleware in Laravel involves creating a middleware class that contains logic to run on HTTP requests. This class is then registered in the app/Http/Kernel.php file inside the $routeMiddleware array, linking a short name like 'auth' to the middleware class. After registration, this middleware name can be assigned to routes or route groups to protect them. When a request hits a route with middleware, Laravel runs the middleware's handle method. The middleware can check conditions like user authentication and decide to allow the request to continue to the controller or redirect the user elsewhere. This process ensures controlled access and request modification in Laravel applications.