在 Web 开发中,中间件作为处理 HTTP 请求和响应的关键组件,扮演着至关重要的角色。ThinkPHP8 提供了强大的中间件支持,使得开发者能够轻松实现各种功能,如登录检测、多语言切换和跨域请求处理等。本文将通过真实案例,详细讲解如何在ThinkPHP8 中间件中实现这些功能,并展示如何在全局配置、路由和控制器中灵活调用中间件。
目录
一、登录检测中间件:守护用户安全
需求背景:确保用户在访问敏感页面前已登录,以保护用户数据和系统安全。
实现步骤:
-
创建中间件:
php think make:middleware AuthMiddleware
-
编写中间件逻辑:
namespace app\middleware; use think\facade\Session; use think\Response; class AuthMiddleware { public function handle($request, \Closure $next) { if (!Session::has('user_id')) { return Response::create('Unauthorized', 'json', 401); } return $next($request); } }
-
配置中间件:
在应用
config/middleware.php
中配置中间件:return [ 'auth' => \app\middleware\AuthMiddleware::class, ];
-
全局配置中间件(可以省略,这里主要说明如何在全局中使用):
在
app
目录下面middleware.php
中全局配置中间件:return [