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

Laravel Sanctum用于REST API时出现无限递归错误求助

Laravel Sanctum 无限递归错误解决方法

针对你遇到的auth:sanctum中间件触发Maximum call stack size reached无限递归错误,以下是排查和解决步骤:

1. 检查Auth配置文件

打开config/auth.php,确认sanctum guard的配置正确,避免循环引用:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

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

注意:不要将默认guard设置为sanctum(除非你明确需要),默认保持web即可。

2. 清除配置缓存

配置文件修改后必须清除缓存,否则旧配置会导致异常:

php artisan config:clear
php artisan cache:clear

3. 验证Sanctum中间件注册

打开app/Http/Kernel.php,确认api中间件组已正确包含Sanctum的状态保持中间件:

protected $middlewareGroups = [
    // ...其他配置
    'api' => [
        \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
        'throttle:api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
];

4. 排查自定义Auth逻辑

检查App\Providers\AuthServiceProvider的boot方法,确保没有错误地重写或绑定sanctum guard的逻辑,避免触发递归调用。

5. 重新发布Sanctum配置(可选)

如果怀疑配置文件损坏,重新发布Sanctum的默认配置:

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

额外验证

在Postman调用接口时,确保请求头正确携带Authorization: Bearer {你的认证token},虽然当前错误是递归问题,但正确的请求头是接口正常工作的前提。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:46:17