Home>Article>PHP Framework> [Note organization] Introduction and creation of laravel HTTP middleware

[Note organization] Introduction and creation of laravel HTTP middleware

演明
演明 Original
2021-09-13 17:13:17 1255browse

The following are the notes I compiled while watching videos on the php Chinese website for your reference. The following are some basic knowledge. If you are not familiar with the basic knowledge, you can take a look. The last article I shared was about composer installing laravel. If you want to see more articles, follow me. I hope I can help you.

Middleware is actually a layer of filtering or protection added to the route. The prefix and namespace are passed in as the array parameters of the group, and the middleware is also passed in as the array parameters of the group

1. Middleware writing

Before adding middleware

Route::group(['prefix' => 'admin','namespace'=>'Admin'], function () { Rount::get('login','IndexController@login'); Rount::get('index','IndexController@index'); });

After adding web middleware

Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>['web']], function () { Rount::get('login','IndexController@login'); Rount::get('index','IndexController@index'); });

web middleware can be used session function, enable CSRF protection

Route::get('/',function(){ session(['key'=>123]); return view('welcome'); });

and set up a route to output the session

Route::get('/test',function(){ echo session('key'); return 'test'; });

But because it is not in a middleware, the value of the session cannot be retrieved

Next we set up the middleware that puts the route into a group

Route::group(['middleware'=>['web']], function () { Route::get('/',function(){ session(['key'=>123]); return view('welcome'); }); Route::get('/test',function(){ echo session('key'); return 'test'; }); });

The system default web middleware, the middleware is in Kernel.php

Session will be used only when using web middleware

2. Manually define a background management cloud login middleware in the Kernel.php file

Before definition:

protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, ];

After definition:

protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'admin.login' => \App\Http\Middleware\AdminLogin::class, ];

Switch to the project directory in the cmd window and use the command to create middleware

php artisan make:middleware AdminLogin

Then check the AdminLogin.php file in the Middleware folder


      

Then call the middleware just created File

Route::group(['middleware'=>['web','admin.login'],], function () { Route::get('/',function(){ session(['key'=>123]); return view('welcome'); }); Route::get('/test',function(){ echo session('key'); return 'test'; }); });

3. Verification of the background super administrator

Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>'web'], function () { Rount::get('login','IndexController@login');//登录不需要后台管理员的超级认证 }); Route::group(['prefix' => 'admin','namespace'=>'Admin','middleware'=>'admin.login'], function () { Rount::get('index','IndexController@index');//超级管理员需要认证后才能进入欢迎页面和编辑页面 Rount::resource('article','ArticleController'); });

Any user can log in, but if the login is successful, the welcome page will be entered, and the login is not successful. Just on the login page, because the login information is stored in the session, we use the session information to determine whether to log in

Simulating login is to write the login information into the session, and then find the IndexController controller under the Admin package

1]); //登录信息用admin存储 return '

登录

' } }

We output the session in the middleware to test it

Then check the AdminLogin.php file in the Middleware folder


      

Verification:

We log in first, and then visit the welcome page. If 1 is output, it means that our setting is successful (save 1 in the session when logging in, and then enter the welcome page. The welcome page will call the middleware's AdminLogin.php,),

We continue to set up the AdminLogin.php file in the Middleware folder

##


      

The above steps are my study notes, I put the steps or key points to be operated I've written it down, and if you don't understand something, you can leave a message. Thank you for your support. I hope I can help you. If you want to see more information, follow me and continue to share in the next article.

The above is the detailed content of [Note organization] Introduction and creation of laravel HTTP middleware. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn