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

Laravel 10使用Sanctum提示api_token列不存在问题求助

解决Laravel 10 Sanctum请求头带Token时报错Column not found: 1054 Unknown column 'api_token'

报错根源在于你的auth.php中api守卫使用了token驱动——这是Laravel原生的TokenGuard,它默认会去users表查找api_token字段做认证,但Sanctum的认证逻辑完全不依赖这个字段,它靠自身的sanctum驱动和sanctum_personal_access_tokens表管理令牌。

按以下步骤修改配置即可解决问题:

  1. 更新auth.php的守卫配置
    将api守卫的driver从token改为sanctum:

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'sanctum',
            'provider' => 'users',
        ],
    ],
    
  2. 确认sanctum.php配置正确
    你当前的配置已经正确指向api守卫,无需修改:

    'guard' => ['api']
    
  3. 路由中间件保持不变
    你已经正确使用auth:sanctum中间件,无需调整:

    Route::group(['middleware' => 'auth:sanctum'], function () { 
        Route::get('user', [UserController::class, 'user'])->name('user'); 
    });
    

修改完成后,Sanctum会使用自身的认证逻辑,不再去users表查找api_token字段,报错即可消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:42:37