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

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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年前 评论

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