JWTAuth 使用与常见错误

首先,按照教程安装:https://laravel-china.org/articles/10885/full-use-of-jwt#ff18c5

然后,在使用JWTAuth时,一般情况下,按照官方的流程安装是不会出现问题的,但是,往往由于本地环境的问题,经常会遇到一些奇怪的错误。先介绍一下本文的案例:

环境:laravel5.1、tymon/jwt-auth =1.*@rc

目标:登陆时生成token,

,保存在session中,需登陆的接口必须通过路由中间件的校验,该中间件对token进行验证。

JWTAuth 使用与常见错误_第1张图片

错误:

已经在postman导入token,仍然提示

JWTAuth 使用与常见错误_第2张图片

由此可见是捕获到异常,下面就是对对应的异常进行分析:

JWTAuth 使用与常见错误_第3张图片

然后postman打印:

JWTAuth 使用与常见错误_第4张图片

毫无头绪,然后再对代码中if判断语句进行分析,看看是那边出错,由于handle方法是别人写的而且在其他项目里正常运行了,所以作者就ctrl+c了,结果发现是这边错了:

JWTAuth 使用与常见错误_第5张图片

修改if中代码:

JWTAuth 使用与常见错误_第6张图片

即可。但是问题还没有解决,在其他项目中这个方法是没有错误的,而在这边却报错,好在移除后对结果暂未发现影响,但原因还有待调查。

注意事项:

在使用JWTAuth时注意其User模型的命名空间,因为User模型在刚创建的项目中一般是在app目录下,而有多个模型时大家都习惯将其放入一个新建的Models文件夹中,命名空间会由原来的App\User;变为:App\Models\User;注意修改config/auth.php中model值。还有就是按照教程执行脚本生成的jwt.php中一般没有'user' => 'App\Models\User',,最好加上,以免报错。

 

好了下面说点本地开发中经常会遇到的问题,在我开发的过程中经常在修改配置文件后,输出依旧,这往往并不是由于错误,而是配置的缓存为销毁,缓存一般存在storage\framework\cache下,建议在项目根目录下执行脚本:php artisan cache:clear、php artisan config:cache、php artisan view:clear

 

 

 

你可能感兴趣的:(php)