跳转到主要内容
约 2 分钟阅读

中间件 (Middleware)

中间件提供了一种方便的机制来检查和过滤进入应用程序的 HTTP 请求。例如 Laravel 自带了验证用户身份的认证中间件。

创建自定义中间件

php artisan make:middleware EnsureTokenIsValid
namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class EnsureTokenIsValid
{
    public function handle(Request $request, Closure $next): Response
    {
        if ($request->input('api_token') !== 'secret-token') {
            return response()->json(['message' => '未经授权的访问'], 401);
        }

        return $next($request);
    }
}

注册与使用中间件

在 Laravel 11/12 中,中间件可直接在 bootstrap/app.php 中优雅注册:

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
    )
    ->withMiddleware(function (Middleware $middleware) {
        // 注册中间件别名
        $middleware->alias([
            'check.token' => \App\Http\Middleware\EnsureTokenIsValid::class,
        ]);
    })->create();