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
]);

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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年前 评论

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