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

如何使用Laravel Sanctum分组受保护路由?遇守卫未定义错误

解决Laravel Sanctum路由分组及"Auth guard [:sanctum] is not defined"错误

错误原因

你遇到的错误是因为中间件语法写错了——Laravel中指定认证守卫的分隔符是单冒号:, 而非双冒号::,你写成了auth::sanctum,导致框架无法识别正确的守卫配置。

正确的路由分组写法

将中间件改为auth:sanctum即可,示例代码如下:

Route::group(['middleware' => ['auth:sanctum']], function(){
    // 发送重置密码验证码
    Route::post('/send-password-code', [ResetPasswordController::class, 'sendResetPasswordCode']);

    // 重置密码
    Route::post('/reset-password', [ResetPasswordController::class, 'reset']);
});

也可以使用更简洁的链式写法:

Route::middleware('auth:sanctum')->group(function () {
    Route::post('/send-password-code', [ResetPasswordController::class, 'sendResetPasswordCode']);
    Route::post('/reset-password', [ResetPasswordController::class, 'reset']);
});

额外检查项

  • 确保已正确安装并配置Laravel Sanctum:执行过composer require laravel/sanctum,发布迁移文件并完成数据库迁移,同时config/auth.php的guards数组中存在sanctum配置(默认安装后会自动添加):
'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'sanctum' => [
        'driver' => 'sanctum',
        'provider' => 'users',
        'hash' => false,
    ],
],

内容的提问来源于stack exchange,提问作者Thomas Arnel Madison Endomba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:42:02