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
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
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年前 评论

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