TypeError: Argument 1 passed to Tymon/JWTAuth/JWT::fromUser () must be an instance of Tymon/JWTAuth/Contracts/JWTSubject, instance of App/Models/User given?

执行 教程里面的,


$user = App\Models\User::first();
Auth::guard('api')->fromUser($user);

出现 TypeError: Argument 1 passed to Tymon/JWTAuth/JWT::fromUser() must be an instance of Tymon/JWTAuth/Contracts/JWTSubject, instance of App/Models/User given

UKNOW
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
liyu001989
最佳答案

从报错看就是没有 implements JWTSubject。你是先打开的 tinker 再修改的代码吗?

你把 tinker 退出,再进入试一下

5年前 评论
讨论数量: 4
liyu001989

从报错看就是没有 implements JWTSubject。你是先打开的 tinker 再修改的代码吗?

你把 tinker 退出,再进入试一下

5年前 评论
liyu001989

file

5年前 评论
巴啦啦小仙女 4年前
UKNOW

@liyu001989
<?php

namespace App\Models;

use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Auth;
class User extends Authenticatable implements JWTSubject
{
use Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name', 'email', 'password','mobile'
];

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];

public function getJWTIdentifier()
{
    return $this->getKey();
}

public function getJWTCustomClaims()
{
    return [];
}

}

5年前 评论
liyu001989

从报错看就是没有 implements JWTSubject。你是先打开的 tinker 再修改的代码吗?

你把 tinker 退出,再进入试一下

5年前 评论
UKNOW

@liyu001989 是的,我把tinker退出,重新执行 好了。谢了

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!