jwt token 有效期

请问一下:为什么使用jwt 鉴权后。我设置的有效期应该是24小时。为什么好像1个小时就过期了 以下代码写的不对吗?

return $this->response->array([
'access_token' => $token,
'token_type' => 'Bearer',
'expires_in' => \Auth::guard('api')->factory()->getTTL() 60 24
]);

附言 1  ·  5年前

return $this->response->array([
'access_token' => $token,
'token_type' => 'Bearer',
'expires_in' => \Auth::guard('api')->factory()->getTTL() 60 24
]);

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
liyu001989
最佳答案

对啊 \Auth::guard('api')->factory()->getTTL() * 60 这个就是取出来过期时间,单位是分钟,所以乘了60。

你改一下 env ,看看 \Auth::guard('api')->factory()->getTTL() 这个是啥

5年前 评论
讨论数量: 5
liyu001989

你理解错了,你这里只是返回了一个数字,需要去 env 里面配置 JWT_TTL 才是生成 token 的有效期

5年前 评论

@liyu001989 您好,意思这部分代码返回的数字是展示用的,是过期时间,纯展示,没有实际作用,如果真正要设置过期时间,应该按您说的去吧。然后我在.env 设置的时间应该跟这个数字保持一直,应该是这意思吧

5年前 评论
liyu001989

对啊 \Auth::guard('api')->factory()->getTTL() * 60 这个就是取出来过期时间,单位是分钟,所以乘了60。

你改一下 env ,看看 \Auth::guard('api')->factory()->getTTL() 这个是啥

5年前 评论

@Wen369367988 我在jwt.php 设置 ttl 为一分钟 ,但是postman 带着token ,仍然能请求到数据 。blacklist_enabled 黑名单也是开启状态

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!