找回密码
 立即注册
首页 业界区 业界 深入理解 Laravel Middleware:完整指南

深入理解 Laravel Middleware:完整指南

捷荀讷 2025-11-10 08:15:02
深入理解 Laravel Middleware:完整指南

Laravel 中间件是框架最强大的特性之一,它在 HTTP 请求和应用核心逻辑之间扮演着桥梁的角色。不管你是开发简单的博客还是复杂的企业应用,掌握中间件都是写出安全、易维护、高效代码的关键。
这篇指南会带你全面了解 Laravel 12 中间件,从基础概念到高级用法和最佳实践。
原文链接 深入理解 Laravel Middleware:完整指南
什么是中间件?

中间件提供了一种便捷的机制来检查和过滤进入应用的 HTTP 请求。你可以把中间件理解为 HTTP 请求在到达应用核心之前必须经过的一道道关卡。
比如,Laravel 内置了一个用于验证用户身份的中间件。如果用户未登录,中间件会把他们重定向到登录页。如果已登录,中间件就放行,让请求继续往下走。
除了身份验证,中间件还有很多其他用途:

  • 请求日志:跟踪所有传入请求以进行调试和分析
  • CSRF 保护:确保请求合法且安全
  • 数据验证:在数据到达控制器之前进行验证
  • 速率限制:通过限制请求频率来防止滥用
  • CORS 处理:管理跨域资源共享策略
  • API Token 验证:认证 API 请求
  • 基于角色的访问控制:根据用户角色限制访问
  • 请求/响应修改:在处理或发送之前转换数据
中间件的工作原理:请求生命周期

理解中间件在 Laravel 请求生命周期中的位置很重要。当一个 HTTP 请求进来时,它会经历这样的流程:

  • 请求从 public/index.php 进入
  • Laravel 启动应用并加载服务提供者
  • 请求经过全局中间件栈
  • 路由器匹配对应的路由
  • 执行该路由的中间件
  • 请求到达控制器或路由处理器
  • 响应原路返回,再次经过中间件
  • 最终返回给客户端
这种管道式架构让每个中间件都可以在请求到达应用逻辑之前对其进行检查、修改,甚至直接拦截。
创建自定义中间件

在 Laravel 12 中,用 Artisan 命令创建中间件很简单。我们来一步步看如何创建自定义中间件。
步骤 1:生成 Middleware

使用 make:middleware Artisan 命令创建一个新的 Middleware 类:
  1. php artisan make:middleware EnsureTokenIsValid
复制代码
这个命令会在 app/Http/Middleware 目录下生成一个新文件,里面已经写好了基本的中间件结构。
步骤 2:编写中间件逻辑

打开刚生成的 EnsureTokenIsValid.php,你会看到一个带 handle 方法的模板:
[code]

相关推荐

您需要登录后才可以回帖 登录 | 立即注册