使用laravel中jwt-token?组件(三)配置文件介绍
前面介绍了jwt的组成,以及怎么手动实现,现在我们就要使用那些有才能的人为我们封装好的组件,我们直接使用,就是调用别人的方法,调一下配置文件就OK了。
首先我们来修改一下config/jwt.php
这个配置文件
return = [
'secret' => env('JWT_SECRET','xxxyyyzzz'),//这个就是我们运行php artisan jwt:secret生成的秘钥,它就在我们的.env文件里
/**
在1.0版本里,这里多了一项配置 key,这个key也是有两种访问修饰权限的,分别是
public
private
很好理解吧
*/
'key' => [
'public' => env('JWT_PUBLIC_KEY'),
'private' => env('JWT_PRIVATE_KEY'),
//私钥的密码
'passphrase' => env('JWT_PASSPHRASE'),
],
];
接下来是它的三个时间设置
- ttl 【这个代表令牌有效的时间长度,默认的是一个小时】
['ttl' => env('JWT_TTL', 60)]
- refresh_ttl 【刷新时间】这个刷新时间,很多文档都有不同的见解【可以去百度然后自己试验】
['refresh_ttl' => env('JWT_REFRESH_TTL', 20160)]
- 宽限时间
宽限时间是为了解决并发请求的问题,假如宽限时间为 0s ,那么在新旧 token 交接的时候,并发请求就会出错,所以需要设定一个宽限时间,在宽限时间内,旧 token 仍然能够正常使用。
// 宽限时间需要开启黑名单(默认是开启的),黑名单保证过期token不可再用,最好打开
'blacklist_enabled' => env('JWT_BLACKLIST_ENABLED', true)
// 设定宽限时间,单位:秒
'blacklist_grace_period' => env('JWT_BLACKLIST_GRACE_PERIOD', 60)
- 设定header头部中所设定的加密算法 algo
'algo' => env('JWT_ALGO', 'HS256')
这些都是可以按照自己需要所设定的 - 这些是预定义荷载,在上一篇中有介绍过呢
'required_claims' => [
'iss',
'iat',
'exp',
'nbf',
'sub',
'jti',
],
- 我们还可以添加一些关于我们自定义的荷载哦
'persistent_claims' => [
// 'foo',
// 'bar',
]
-
cookie 是否加密
'decrypt_cookies' => false,
默认是不加密的 -
剩下最下面的是一个providers的数组
1.第一个类'jwt' => Tymon\JWTAuth\Providers\JWT\Lcobucci::class
这个里面的就是我们创建和验证【或者说解锁】令牌的类
2.第二个类'auth' => Tymon\JWTAuth\Providers\Auth\Illuminate::class
验证用户
3.第三个类'storage' => Tymon\JWTAuth\Providers\Storage\Illuminate::class
指定用于在黑名单中存储令牌的提供程序