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

Laravel使用jwt-auth做JWT认证时注册后返回Unauthenticated错误

问题根因

你遇到的报错核心原因是AuthController的中间件排除规则存在语法错误,导致signup接口被登录认证中间件拦截,业务代码未执行。

具体错误点

  1. 构造函数中间件配置错误
    你当前的构造函数代码为:
public function __construct()
{
    $this->middleware('auth:api', ['except' => ['login,signup']]);
}

except参数需要传入由独立方法名组成的数组,你将login和signup两个方法名写在同一个字符串中,框架无法识别signup为排除项,因此所有访问signup接口的请求都会被auth:api中间件校验登录状态,未携带有效token就会直接返回Unauthenticated错误,用户写入逻辑完全不会执行。

  1. 可选优化:登录方法明确指定guard
    你当前登录使用的auth()->attempt()会调用Laravel默认的guard,建议明确指定api guard避免配置偏差带来的问题:
if (! $token = auth('api')->attempt($credentials)) {
    return response()->json(['error' => 'Unauthorized'], 401);
}

修复方案

  • 将构造函数的中间件配置修改为:
public function __construct()
{
    $this->middleware('auth:api', ['except' => ['login', 'signup']]);
}
  • 执行以下命令清理缓存:
php artisan config:clear
php artisan route:clear
  • 重新测试signup接口即可正常写入用户数据,调用登录接口也会正常返回token。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:45:03