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表管理令牌。
按以下步骤修改配置即可解决问题:
更新auth.php的守卫配置
将api守卫的driver从token改为sanctum:'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'sanctum', 'provider' => 'users', ], ],确认sanctum.php配置正确
你当前的配置已经正确指向api守卫,无需修改:'guard' => ['api']路由中间件保持不变
你已经正确使用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
相关产品推荐
相关产品推荐

