Laravel 中间件

Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求

1.使用中件间

 在路由器中使用中间件:

Route::get(‘/‘, ‘[email protected]‘)->middleware(‘auth‘);

//使用多个中间件
Route::get(‘/‘, function () {
    //
})->middleware(‘first‘, ‘second‘);

//指定类名
Route::get(‘admin/profile‘, function () {
    //
})->middleware(CheckAge::class);

//路由器组使用中间件,需要注册中间件 在app/http/kernel.php  的 $routeMiddleware 属性中:
Route::group([‘middleware‘ => [‘auth‘]], function () {
    //
});
//中间件组

//Laravel 带有开箱即用的 web 和 api 中间件,包含了可能应用到 Web UI 和 API 路由的通用中间件:
Route::get(‘/‘, function () {
    //
})->middleware(‘web‘);

Route::group([‘middleware‘ => [‘web‘]], function () {
    //
});

//注:配置中间件组wed,api, 在 app/http/kernel.php 的 $middlewareGroups 属性中

在控制器中使用中间件:

public function __construct()
    {
        $this->middleware(‘auth‘);

        $this->middleware(‘log‘)->only(‘index‘);

        $this->middleware(‘subscribed‘)->except(‘store‘);
    }

2.创建中间件

中间件在 app/Http/Middleware 目录内  新建类

namespace App\Http\Middleware;

use Closure;

class className
{
    /**
     * 处理传入的请求
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return $next($request);
    }

}

3.注册中间件

在 App\Http\Kernel 类内
protected $routeMiddleware = [
    ‘auth‘ => \Illuminate\Auth\Middleware\Authenticate::class,
    ‘auth.basic‘ => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    ‘bindings‘ => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ‘can‘ => \Illuminate\Auth\Middleware\Authorize::class,
    ‘guest‘ => \App\Http\Middleware\RedirectIfAuthenticated::class,
    ‘throttle‘ => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];

4.中间件的参数

 
时间: 2024-11-06 00:42:29

Laravel 中间件的相关文章

Laravel中间件原理

本文和大家分享的主要是Laravel中间件原理相关内容,一起来看看吧,希望对大家学习Laravel有所帮助. Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求, 如 ValidatePostSize 用来验证 POST 请求体大小. ThrottleRequests 用于限制请求频率等. 那Laravel的中间件是怎样工作的呢? 启动流程 再说 Laravel 中间件前,我们先来理一理 laravel 的启动流程 首先,入口文件 index.php 加载了 autolo

laravel中间件 middleware

要创建一个新的中间件,则可以使用 make:middleware 这个 Artisan 命令: 此命令将会在 app/Http/Middleware 目录内设定一个名称为 CheckAge 的类.在这个中间件内我们只允许请求的年龄 age 变量大于 200 时才能访问路由,否则,我们会将用户重定向到首页「home」这个 URI 上. 如你所见,若是 age 小于 200,中间件将会返回 HTTP 重定向给用户端,否则,请求将会进一步传递到应用程序.只需调用带有$request的$next方法,即

laravel 中间件的使用

1.中件间保存目录:app/Http/Middleware 2.自定义中间件: (1)  php  artisan  make:middleware  [NameMiddleware]// 生成中件间类模板 (2) 在app/Http/Middleware在打开创建的中件间类,在handle方法实现自己的逻辑.// 参数一是请求,参数二是下一个中间件,可增加其它所需参数到参数二后. (3) 将自己的处理逻辑写在 return $next($request) 之后,表示该中间件在请求之后执行,反之

Laravel中间件

先谈一谈中间件的使用场景,比如路由转到一张页面,我们需要记录用户的cookie,或者检测用户的访问权限,这些操作如果全写在控制器里是不合适的,因为随着业务的扩充,控制器里的业务逻辑会越来越臃肿,难以维护,所以,不同的操作,我们分别写在各自的中间件里.我们使用artisan命令行来创建一个中间件. 1 php artisan make:middleware MyMiddleware 中间件的php文件都放在了目录\app\Http\Middleware下,大家应该注意到,中间件Middleware

Laravel表单篇----request请求,session存储,response响应以及中间件

请求Request 取值(传入参数Request $request) $request -> input('name');(请求name值) $request -> input('sex', '未知');(也可以请求未被定义的参数) $request -> all();(得到所有请求值) 判断取值类型 $request -> method();(判断请求类型) $request -> isMethod('GET');(判断是否为get请求) $request -> aj

Laravel 使用中间件进行权限控制

Laravel 使用中间件进行权限控制 飞凡的陀螺 关注 2018.01.24 17:45 字数 264 阅读 1138评论 0喜欢 1 先看 文档Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求.这里实现一个只有admin角色才能访问特定路由的功能 新建middlewarephp artisan make:middleware MustBeAdmin 打开生成的 \app\Http\Middleware\MustBeAdmin.php 修改handle方法关于hasR

laravel的中间件

laravel中间件的使用 laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如果用户经过认证,中间件就会允许请求继续往前进入下一步操作. 当然,除了认证之外,中间件还可以被用来处理更多其它任务.比如:CORS 中间件可以用于为离开站点的响应添加合适的头(跨域):日志中间件可以记录所有进入站点的请求. Laravel框架自带了一些中间件,包括认证.CSRF 保护中间件等等.所有的中间件都位于 app/Http/Middleware目录

Laravel 权限管理总结(二)

生成5张表 User     roles     permissions       user_role   role_permissions (两张多对多) 在模型中建立关联 $user ->roles()->attach($role); $role->permission()->attach($role); 中间件Middleware Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求 php artisan make:middleware MustBe

Laravel-表单篇-controller

(慕课网_轻松学会Laravel-表单篇_天秤vs永恒老师_http://www.imooc.com/learn/699) Controller 1.Controller-Request 1 //Request 2 public function request1(Request $request){ 3 //1.取值 4 // return $request->input('name','未知'); 5 //判断有没有sex 6 if($request->has('sex')){ 7 ech