Laravel 5 中使用 JWT(Json Web Token) 实现基于API的用户认证

安装

我们使用Composer安装jwt扩展包:

composer require tymon/jwt-auth

配置

安装完成后,需要在config/app.php中注册相应的服务提供者(Laravel 5.4 及以下版本,Laravel 5.5 + 版本会自动发现该扩展包):

Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class

然后注册需要用到的对应门面:

'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class
'JWTFactory' => Tymon\JWTAuth\Facades\JWTFactory::class

然后发布相应配置文件:

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"

最后生成密钥:

php artisan jwt:secret


报错处理

再生成密钥时报的一个错误
Method Tymon\JWTAuth\Commands\JWTGenerateCommand::handle() does not exist

导致这个的原因是因为jwt版本与laravel版本冲突
这时候我们只需要找到config/app.php下的这一段代码删除掉
Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class
然后执行命令
composer require tymon/jwt-auth:dev-develop –prefer-source
第二步将
Tymon\JWTAuth\Providers\LaravelServiceProvider::class
加入config/app.php的
‘providers’

最后执行
php artisan jwt:secret

发表回复

京ICP备15027918号-1