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

Laravel 8中使用Tymon JWT Auth登录失败:TypeError错误求助

解决JWT Auth登录时的TypeError问题

嘿,这个问题我之前也碰到过!一眼就瞅出来问题在哪了——你的User模型虽然引入了JWTSubject接口,但没在类声明里明确标注要实现这个接口!

为啥会报错?

PHP里要实现一个接口,必须在类定义里显式写implements 接口名,光引入命名空间没用。报错提示说App\Models\User不是JWTSubject的实例,就是因为这个原因。

怎么修复?

直接修改User模型的类声明,加上implements JWTSubject就行:

class User extends Authenticatable implements JWTSubject {
    // 你原来的模型代码都不用动
}

要是改完还不行?试试这几步

  • 清一下Laravel的类缓存:跑个php artisan optimize:clear,有时候旧的类定义被缓存了,改了代码也不生效
  • 检查下Tymon\JWTAuth\Contracts\JWTSubject的命名空间有没有拼错,别打错字
  • 确认你的getJWTIdentifier()和getJWTCustomClaims()方法和接口要求的签名一致(你的代码里这俩方法是对的,不用改)

验证一下

改完之后重新调用登录接口,应该就能正常生成Token了。你的登录逻辑代码本身没啥问题,只要模型正确实现接口,auth()->attempt()就能正常工作啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:28:12