jwt-auth 如何设置,获取刷新 token 的过期时间?

我设置 token 有效期为1分钟,token 过期,去刷新 token 也同样提示已过期 "Token has expired"

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 7
Jourdon

jwt-auth 有两个重要的参数,可以在 .env 中进行设置

  • JWT_TTL 生成的 token 在多少分钟后过期,默认 60 分钟
  • JWT_REFRESH_TTL 生成的 token,在多少分钟内,可以刷新获取一个新 token,默认 20160 分钟,14天。

这里需要理解一下 JWT 的过期和刷新机制,过期很好理解,超过了这个时间,token 就无效了。刷新时间一般比过期时间长,只要在这个刷新时间内,即使 token 过期了, 依然可以换取一个新的 token,已达到应用长期可用,不需要重新登录的目的。

去查看下你的Token 刷新时间是不是也过了,如果过了就不能再用它去刷新了。
也可以在中间键中帮助用户刷新出新Token

5年前 评论
liyu001989

可以创建token的接口信息里面把刷新过期时间返回回去。

默认应该是2周内可以刷新,你加点日志调试一下,看看为什么刷新不了

5年前 评论

@liyu001989 我就是没有找到怎么返回刷新的过期时间。。

5年前 评论

@Jourdon 就是token过期了才需要去刷新啊

5年前 评论

@Jourdon @liyu001989 找到原因了,我把刷新的这个路由放到 'api.auth' 下面去了。。

5年前 评论
dividez

@Jourdon token 过期后 无法通过

JWTAuth::parseToken()->refresh()

获取新的token,
请问一下应该如何通过过期的token 获取新的token呢?

5年前 评论

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