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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 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年前 评论

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