问下jwtauthtoken 这个插件如何能延长token的使用时间?

情况是这样的,我现在需要用jwttoken 生成一个30分钟的token,如果用户在30分钟内不操作这token就自动过期了,然后如果用户一直有操作,那这个token就3天后过期,强制用户登录
这jwttoken能做到吗?
相当于我有一个token,这token是一定会到3天后过期,但是3天内,如果用户30分钟内没有操作,token也会过期

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

只用jwt貌似不能实现,可以和缓存一起来实现

9个月前 评论
陈先生

我觉得你的诉求可以换一个方向,转为 token 有效期和可刷新有效期的概念。 拆解一下你的诉求

  1. 我的 token 要求 30 分钟过期。

  2. 我的 token 无论如何在 3 天后都要过期

看起来是一个很离谱的诉求,因为你认为你的 token 应该有两个有效期。其实换一种方式去思考就有答案了。 其实就是一个Token 自刷新的概念。

  1. Token 只有 30分钟的有效期 (JWT 完美支持)
  2. 可以使用旧 token 在一段时间内获取新的 Token (Token 可被用于刷新的时间)- 设置为 3 天

浅谈一下,你可以理解一下我的说法,如有其他问题可以继续回复。

9个月前 评论
donggan (楼主) 9个月前
陈先生 (作者) 9个月前

你这个要求跟 Session 的生命周期差不多,所以可以有两种方案:

1.你直接就用 Session 机制来实现用户认证;

2.魔改 JWT 的 Auth Guard 的验证逻辑,从数据库或 Redis 里获取 Token 的过期时间,如果当前请求还在有效期内,则自动更新数据库里的有效时间(往后顺延)。

9个月前 评论

refresh token啊

9个月前 评论

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