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 ...