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

Laravel/Vue项目使用cookie会话驱动时出现CSRF令牌不匹配419错误

解决Laravel/Vue中SESSION_DRIVER=cookie时的CSRF 419令牌不匹配问题

核心原因

当使用cookie作为session驱动时,后端依赖浏览器携带的laravel_session cookie识别用户会话。如果axios请求未正确携带该cookie,后端会为每个请求创建全新session,导致生成的CSRF令牌与客户端发送的不一致,触发419错误。而redis/file驱动依赖服务器端存储session,会话识别逻辑不受cookie携带问题影响,因此能正常工作。

解决方案

1. 开启Axios的Cookie携带功能

修改客户端axios配置,添加withCredentials: true,确保请求自动携带session cookie:

if(!window.axios) {
    window.axios = require("axios");

    window.axios.defaults.headers.common = {
        'X-Requested-With': 'XMLHttpRequest',
        'X-CSRF-TOKEN' : document.querySelector('meta[name="csrf-token"]').getAttribute('content')
    };
    // 允许axios携带cookie到后端
    window.axios.defaults.withCredentials = true;
}

2. 调整Laravel Session配置(config/session.php)

根据部署环境修正session cookie参数:

  • same_site:本地HTTP开发环境设为'lax';生产HTTPS同域场景设为'strict',跨域场景设为'none'(需同时开启secure)
    'same_site' => 'lax',
    
  • secure:本地HTTP环境设为false,HTTPS环境设为true
    'secure' => env('SESSION_SECURE_COOKIE', false),
    
  • domain:前后端子域名部署时,设置为根域名(如.yourdomain.com),确保cookie跨子域名共享
    'domain' => env('SESSION_DOMAIN', null),
    

3. 确认路由中间件配置

若请求路由在api中间件组,默认不会启用session和CSRF验证。如需在api路由中使用session,需手动添加web中间件:

// 单个路由添加示例
Route::post('/api/shopping/getCartInfo', [CartController::class, 'getCartInfo'])->middleware('web');

或在app/Providers/RouteServiceProvider.php中批量配置api路由的中间件:

public function mapApiRoutes()
{
    Route::prefix('api')
        ->middleware(['web', 'api'])
        ->namespace($this->namespace)
        ->group(base_path('routes/api.php'));
}

4. 确保CSRF令牌正确生成

页面meta标签的CSRF令牌必须由Laravel动态生成,避免硬编码:

<meta name="csrf-token" content="{{ csrf_token() }}">

验证步骤

  1. 打开浏览器开发者工具,检查请求头Cookie字段是否包含laravel_session值;
  2. 在后端方法中打印session ID,确认多次请求的session ID一致:
public function getCartInfo(Request $request)
{
    \Log::info($request->session()->getId()); // 多次请求应输出相同ID
    \Log::info($request->session()->token()); // 此时应与客户端发送的令牌一致
    // ... 业务代码
}

内容的提问来源于stack exchange,提问作者Marko Jovanovic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:15:32