Middleware 提供了一种机制来过滤和处理进入应用的 HTTP 请求 — 在请求到达控制器之前(以及可选的之后)运行代码。它用于处理横切关注点,如身份验证、日志记录、CORS 和速率限制。
中间件如何工作
php
{
{
(->age < ) {
();
}
();
}
}
中间件接收请求和 $next 闭包。$next($request) 之前的代码在进入时运行;调用 $next 将控制权传递给下一个;你也可以对响应进行操作。中间件可以短路(返回响应而不调用 $next,例如阻止未授权请求)。
// to a route
Route::get('/admin', ...)->middleware('auth');
// to a group of routes
Route::middleware(['auth', 'verified'])->group(function () { ... });
// globally (every request) — registered in the HTTP kernel / bootstrap
中间件可以按路由、按路由组或全局应用。多个中间件按顺序运行(形成管道)。
auth → require authentication (redirect/401 if not logged in)
verified → require a verified email
throttle:60,1 → rate limiting (60 requests per minute)
guest → only for non-authenticated users
can:update,post → authorization check
+ CSRF protection, CORS, etc. run as middleware automatically
Laravel 附带了满足最常见需求的中间件 — auth(保护路由的主力)、速率限制、CSRF 等。
中间件是 Laravel 中处理横切关注点的重要概念 — 应该为许多请求运行的逻辑,如身份验证、授权、日志记录、速率限制和 CORS。
理解它至关重要,因为这是 Laravel 应用过滤和保护请求的方式:内置的 auth 中间件是保护路由的标准方法(需要登录),throttle 提供速率限制,CSRF 保护自动作为中间件运行 — 因此中间件是核心应用安全和行为的基础。
知道中间件如何工作(请求/$next 管道、通过返回响应来短路以阻止请求的能力)以及如何应用它(按路由、按路由组、全局)对于正确构建应用至关重要 — 将横切逻辑放在中间件中,而不是在每个控制器中重复。
中间件是 Laravel 处理适用于许多路由的请求级关注点的地方,这使其成为构建安全、结构良好的应用的重要且常用知识 — 特别是用于保护路由的 auth 中间件,这是几乎每个真实应用都使用的。
理解中间件管道也有助于你为特定应用的请求处理编写自定义中间件。