千家信息网

如何创建laravelHTTP中间件

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇文章为大家展示了如何创建laravel HTTP中间件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。中间件其实就是在路由上面加了一层过滤或是一层保护,前缀
千家信息网最后更新 2026年11月03日如何创建laravelHTTP中间件

本篇文章为大家展示了如何创建laravel HTTP中间件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

中间件其实就是在路由上面加了一层过滤或是一层保护,前缀和命名空间都是作为group的数组参数传进去的,中间件也是作为group的数组参数传进去

一、中间件书写

添加中间件前

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

添加web中间件后

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

web中间件可以用session功能,启用CSRF保护

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

再设置一个路由,用来输出session

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

但因为不在一个中间件里,所以取不出session的值

下面我们设置一下把路由放到一个分组的中间件

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

系统默认的web中间件,中间件在Kernel.php中

使用web中间件时,才会使用session

二、自己手动在Kernel.php文件中定义一个后台管理云登录的中间件

定义前:

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,    ];

定义后:

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,    ];

在cmd窗口切换到项目目录可以用命令创建中间件

php artisan make:middleware AdminLogin

然后在Middleware文件夹查看AdminLogin.php文件

然后调用刚才创建的中间件

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';});});

三、后台超级管理员的验证

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');});

任何一个用户都可以登录,但是如果登录了成功,就进入欢迎页面,没有登录成功就在登录页面,因为登录的信息存到session里,所以我们利用session的信息判断是否登录

模拟登录是将登录信息写到session里面,然后找到Admin包下IndexController控制器

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

登录

' }}

我们在中间件里输出session测试一下

然后在Middleware文件夹查看AdminLogin.php文件

验证:

我们先登录一下,然后访问欢迎页面,如果输出1,表示我们设置成功了(登录时把1存到session里,然后进入欢迎页面,欢迎页面会调用中间件的AdminLogin.php,),

我们继续设置

Middleware文件夹的AdminLogin.php文件

上述内容就是如何创建laravel HTTP中间件,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

中间件 登录 页面 文件 信息 管理 成功 后台 文件夹 管理员 路由 输出 内容 参数 就是 技能 数组 知识 保护 认证 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 科技金融是不是互联网金融 互联网科技公司的优势 互联网与未来科技 安徽鑫晟辉互联网科技 互联网金融科技创新 融贸通互联网科技 苏州大垚互联网科技 镁科技互联网资讯平台 华中科技有哪些互联网大佬 贵州叶脉互联网科技有限公司所属行业 米聚互联网科技南京有限公司排面 科技互联网的核心竞争力 2021互联网科技公司排名 产业互联网科技服务公司 互联网科技资金流入 互联网相关科技技术 信承诺互联网科技有限公司 互联网科技新闻 北京天晋互联网科技有限公司 互联网科技金融公司 万易互联网科技有限公司 哈尔滨秒房互联网科技有限公司 须眉科技是互联网公司吗 恒生互联网科技指数跳水 易企秀互联网科技是做什么的 云鲸互联网络科技有限公司 互联网公司属于科技吗 互联网科技大会大佬 互联网企业和网络科技有限公司
0