首页 > 解决方案 > Symfony\Component\Debug\Exception\FatalThrowableError:参数 1 传递给 Tymon\JWTAuth\JWTGuard::login()

问题描述

尝试登录 API 时出现此错误

Symfony\Component\Debug\Exception\FatalThrowableError: 传递给 Tymon\JWTAuth\JWTGuard::login() 的参数 1 必须是 Tymon\JWTAuth\Contracts\JWTSubject 的实例,给定 App\User 的实例,在 /home/scrixmll 中调用/apiadmin.silexsecure.com/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php 在文件 /home/scrixmll/apiadmin.silexsecure.com/vendor/tymon/jwt-auth/src/JWTGuard 的第 307 行。第 140 行的 php

标签: phplaravel

解决方案


您需要Tymon\JWTAuth\Contracts\JWTSubject在您的用户模型中实现

use Illuminate\Foundation\Auth\User as Authenticatable;
use Tymon\JWTAuth\Contracts\JWTSubject;

class User extends Authenticatable implements JWTSubject
{
....

并声明所需的方法

    /**
     * Get the identifier that will be stored in the subject claim of the JWT.
     *
     * @return mixed
     */
    public function getJWTIdentifier()
    {
        return $this->getKey();
    }

    /**
     * Return a key value array, containing any custom claims to be added to the JWT.
     *
     * @return array
     */
    public function getJWTCustomClaims()
    {
        return [];
    }

推荐阅读