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

使用Laravel Auth Sanctum时套接字挂起,后续请求被拒求助

Laravel Sanctum认证请求引发套接字挂起及服务器拒绝请求的排查方向

登录和注册功能正常,但发起带auth:sanctum中间件的认证请求时,出现套接字挂起,后续所有请求均被拒绝,报错如下:

Error: connect ECONNREFUSED 127.0.0.1:8000
Error: socket hang up

受保护路由代码:

Route::group(['middleware' => 'auth:sanctum'], function () {
    Route::get('/test', [ApiController::class, 'test']);
});

测试方法代码:

public function test(Request $request){
    return "hello world";
}

未添加认证中间件时,/test路由可正常响应,问题出在认证流程中,以下是几个可能的原因:

  • 认证逻辑触发死循环:检查认证相关的中间件、用户Provider或模型方法(比如authenticate、getAuthIdentifier)里,有没有发起对本地服务器的请求(比如获取用户附加数据时调用了自身API),这种嵌套请求会导致套接字挂起,直接堵死服务器。
  • 认证过程耗竭服务器资源:如果认证逻辑里有内存泄漏、大量同步阻塞操作,单次请求就把服务器进程的内存或CPU占满,后续请求自然无法被处理。可以用top命令看服务器资源占用,或者查storage/logs/laravel.log里有没有内存溢出的报错。
  • Session与Token认证冲突:如果同时开了Web会话和Sanctum API认证,Cookie会话和Token认证可能互相干扰,导致服务器处理认证时异常。确保API请求用Authorization: Bearer {token}头,不要依赖Web Cookie;另外检查.env里的SESSION_DRIVER,API场景建议用file或redis,别用cookie。
  • Sanctum配置错误:打开config/sanctum.php,检查stateful配置项,前端域名必须在这个列表里,否则会话处理会出问题;同时确认SANCTUM_STATEFUL_DOMAINS环境变量有没有正确设置。
  • 认证时抛出未捕获异常:认证流程里有未处理的致命错误,直接把Laravel进程搞崩了,后续请求自然连不上。去storage/logs/laravel.log看最新日志,有没有Fatal Error或者未捕获的异常,比如用户模型关联错误、权限检查逻辑抛错等。
  • 服务器端口监听异常:虽然初始请求正常,但认证请求触发了进程意外退出,端口没释放。试试重启Laravel开发服务器,或者用netstat -tulpn | grep 8000检查端口占用,确保只有一个Laravel进程在监听8000端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:05:17