在laravel5.6新版本整合jwt 执行。
php artisan jwt:generate
再生成密钥时报的一个错误
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
如果你想要将其添加到.env
文件中,在.env
中创建JWT_SECRET
字段并再次执行生成密钥的命令。
在config/jwt.php中,你可以配置以下选项:
- ttl:token有效期(分钟)
- refresh_ttl:刷新token时间(分钟)
- algo:token签名算法
- user:指向User模型的命名空间路径
- identifier:用于从token的sub中获取用户
- require_claims:必须出现在token的payload中的选项,否则会抛出
TokenInvalidException
异常 - blacklist_enabled:如果该选项被设置为false,那么我们将不能废止token,即使我们刷新了token,前一个token仍然有效
- providers:完成各种任务的具体实现,如果需要的话你可以重写他们
- User —— providers.user:基于sub获取用户的实现
- JWT —— providers.jwt:加密/解密token
- Authentication —— providers.auth:通过证书/ID获取认证用户
- Storage —— providers.storage:存储token直到它们失效