You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel自定义中间件开发:如何传入Token并与密钥匹配

Laravel自定义中间件验证Token步骤

1. 创建自定义中间件

运行Artisan命令生成中间件:

php artisan make:middleware VerifyToken

2. 编写Token验证逻辑

打开app/Http/Middleware/VerifyToken.php,在handle方法里实现Token获取与验证:

<?php

namespace App\Http\Middleware;

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

class VerifyToken
{
    public function handle(Request $request, Closure $next): Response
    {
        // 方式1:从请求头获取(推荐用Authorization Bearer格式)
        $token = $request->bearerToken();
        
        // 方式2:从请求参数获取(比如?token=xxx)
        // $token = $request->input('token');
        
        // 方式3:从Cookie获取
        // $token = $request->cookie('api_token');

        // 从配置文件读取预设密钥(可在.env里设置APP_CUSTOM_TOKEN=your-secret-key)
        $secretKey = config('app.custom_token');

        // 验证Token是否存在且匹配
        if (!$token || $token !== $secretKey) {
            return response()->json(['message' => '无效的Token'], Response::HTTP_UNAUTHORIZED);
        }

        return $next($request);
    }
}

3. 注册中间件

打开app/Http/Kernel.php,将中间件添加到$routeMiddleware数组中:

protected $routeMiddleware = [
    // ... 其他中间件
    'verify.token' => \App\Http\Middleware\VerifyToken::class,
];

4. 使用中间件

单个路由使用

Route::get('/api/protected', function () {
    return response()->json(['message' => '访问成功']);
})->middleware('verify.token');

路由组使用

Route::middleware('verify.token')->group(function () {
    Route::get('/api/protected', function () {
        return response()->json(['message' => '访问成功']);
    });
    Route::post('/api/data', function () {
        return response()->json(['data' => []]);
    });
});

补充说明

  • 推荐用请求头传递Token,格式为Authorization: Bearer your-secret-key,安全性更高
  • 密钥建议存在.env文件中,然后在config/app.php里添加配置项:
    'custom_token' => env('APP_CUSTOM_TOKEN'),
    
  • 若你的代码有特定Token传递逻辑,可根据实际场景调整获取Token的代码

内容的提问来源于stack exchange,提问作者Lalit Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:30:52