您当前的位置: 首页 >  ar

知其黑、受其白

暂无认证

  • 0浏览

    0关注

    1250博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

laravel-middleware中间件使用方法

知其黑、受其白 发布时间:2021-02-09 13:07:55 ,浏览量:0

阅读目录
  • 介绍
  • 示例A
    • 1 创建middleware中间件
    • 2 全局使用中间件
    • 3 路由中使用中间件
    • 3 在控制器中使用中间件
    • 4 中间件传递参数
    • 5 Terminable 中间件响应后调用的方法
  • 示例B - 中间件传递参数到控制器

介绍

中间件提供了一种方便的机制过滤进入应用程序的 HTTP 请求。例如,Laravel 包含一个中间件,验证您的应用程序的用户身份验证。如果用户未被认证,中间件会将用户重定向到登录界面。然而,如果用户通过身份验证,中间件将进一步允许请求到应用程序中。

当然,除了身份认证以外,还可以编写另外的中间件来执行各种任务。例如:CORS 中间件可以负责为所有离开应用的响应添加合适的头部信息;日志中间件可以记录所有传入应用的请求。

Laravel 自带了一些中间件,包括身份验证、CSRF 保护等。所有这些中间件都位于 app/Http/Middleware 目录。

总结

要创建中间件,请执行以下过程

使用 artisan 命令创建中间件 php artisan make:middleware 中间件名. 在 app→Http 文件夹中的 kernel.php 中注册中间件 在创建的中间件中编写逻辑 将中间件分配给路由或控制器或全局注册中间件

示例A 1 创建middleware中间件

创建中间件的命令:

php artisan make:middleware GetCurrentTime

该命令会在 app/Http/Middleware 目录下创建一个新的GetCurrentTime类,

下面我们来演示一下中间件的简单使用 编写一个显示时间的middleware:

在这里插入图片描述

2 全局使用中间件

编写完成的中间件必须注册之后才能使用: 在app\Http\Kernel.php中注册

 protected $middleware = [
     \App\Http\Middleware\GetCurrentTime::class,
 ];

因为是全局所以没配置路由情况下显示如下:

在这里插入图片描述

3 路由中使用中间件

app\Http\Kernel.php中的protected $routeMiddleware中注册路由中间件

protected $routeMiddleware = [    
    'get_current_time'=>\App\Http\Middleware\GetCurrentTime::class,
];

显示如下:在路由后面使用链式加middleware(‘你定义的路由中间件的名称’);

Route::get('/', function () {
    return view('welcome');
})->middleware('get_current_time');

访问其他路由没有时间显示

在这里插入图片描述

3 在控制器中使用中间件

路由频率限制

在 Laravel 中该功能通过内置的 throttle 中间件来实现,该中间件接收两个参数,第一个是次数上限,第二个是指定时间段(单位:分钟):

Route::get('test','TestController@index')->middleware('throttle:3,1');

路径:laravel5\app\Http\Controllers\TestController.php

            
关注
打赏
1665558895
查看更多评论
0.0515s