middleware 中间件详解

如果感觉这篇文章有用请点个赞,让我知道自己的努力不白费!!!

中间件是请求必经之处,所以此处能对请求的数据做一系列处理,相当于过滤器。例如跨域请求,验证会员是否登录跳转至登录页,前后端分离数据类型不一致,防御xss脚本攻击等。这些作者都用过,所以感觉很好用。
1.生成中间件: php artisan make:middleware UserAuth(中间件名)
2.在app\http\kernel.php 中:
$middleware数组内为全局中间件(每次请求都经过),$routeMiddleware可以指定自定义中间件,在生成的中间件handle方法内写代码逻辑

    Route::middleware(['CheckUserLogin'])->grtoup(function(){
                    // 路由组
            });

一般情况下中间件含有多个路由组,如果单一一个还不如在方法内处理。
$middlewareGroups 为中间件组,即你可以起一个中间件名指定路由内部有多个中间件进行过滤。
看RouteServiceProvider.php中

 protected function mapApiRoutes()
{
    Route::prefix('api')
        ->middleware('api')   //系统默认中间件
        ->namespace($this->namespace)
        ->group(base_path('routes/api.php'));  //系统指定路由
}

系统已经为指定路由指定好中间件,这就是文档中为几个route界面默认好中间件。

3.中间件参数
有时候你用同一个中间件执行相同的逻辑但是不同的判断,例如你有两个平台相同的用户判断用户是否登录,如果没登录就跳转不同的登录界面,这时候只需要在中间件传一个参数就能进行判断。

Route::middleware(['CheckUser:web'])->group(function(){ //路由组 });

至此路由已经介绍完了,如果大家有疑问或者更好的方法使用,请告知我及时补充。
每周不定时更新
如果有用请点个赞吧,照亮我前进孤独的路。

本作品采用《CC 协议》,转载必须注明作者和本文链接
自由飞
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!