jwt-auth错误小结

Posted shqhdmr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jwt-auth错误小结相关的知识,希望对你有一定的参考价值。

我用的是:"tymon/jwt-auth": "1.0.0-rc.1"

根据官方网站http://jwt-auth.readthedocs.io安装,并且vender:publish完配置文件后,需要按照官网的Update your User model章节配置一下auth所需要的一些类。我第一次用jwt-auth,没有进行按照Update your User model章节进行操作,并且所用的Eloquent也和官网不太一样,遇到了3个问题,在此总结一下:

1、config/auth.php

‘guards‘ => [
    ‘api‘ => [
        ‘driver‘ => ‘jwt‘,
        ‘provider‘ => ‘myexample‘,
    ],
],

结果在此文件下面的 ‘providers‘ 数组中忘记写 ‘myexample‘ 相关的 ‘driver‘ 和 ‘model‘ 了,导致了错误1:

 "message": "Type error: Argument 2 passed to Tymon\JWTAuth\JWTGuard::__construct() must be an instance of Illuminate\Contracts\Auth\UserProvider, null given, called in ...

 

问题2和3都是Eloquent Model中遇到的问题,没按照官网Update your User model章节所述导致的,解决办法就是像官网说的改改Auth用到的Model即可,主要是需要Model实现两个接口

 

2、Model没有实现JWTSubject接口报错:

 "message": "Type error: Argument 1 passed to Tymon\JWTAuth\JWTGuard::login() must be an instance of Tymon\JWTAuth\Contracts\JWTSubject, instance of App\Entities\Authors given, called in ...

3、Model没有实现AuthenticatableContract接口(契约)报错:

"message": "Type error: Argument 1 passed to Tymon\JWTAuth\JWTGuard::setUser() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\Entities\Authors given, called in ...

 



以上是关于jwt-auth错误小结的主要内容,如果未能解决你的问题,请参考以下文章

在安装 tymon/jwt-auth 后的 laravel Backend REST API 应用程序中再次遇到 CORS 错误

Composer 找不到包 jwt-auth

laravel composer install 无法解决 tymon/jwt-auth 的可安装包

Lumen:jwt-auth 不存在方法句柄,已完成中间件

tymondesigns/jwt-auth:如何创建过期令牌?

Laravel5.1中使用JWT-Auth时,php artisan 报错不能使用