新手关于 JWT 的几个小问题,还望各位大佬给解释下!!!

如配置文件中

JWT_TTL = 10分钟
JWT_REFRESH_TTL = 60分钟

  • 问题1: token在11分钟的时候去访问登录之后的页面,肯定会显示失效,那么时间肯定在JWT_REFRESH_TTL60分钟之内,请问这个时候去换token能换到新的吗?

  • 问题2:这个60分钟是怎么计算的,如 第一次9分钟换的 第二次5分钟换的 ……第N次 9分钟换的,是不是这个9+5+….+9 <=60分钟?

  • 问题3:大家在项目中,我现在做的是小程序,大家设置的时间是多少?

                                                            此致  敬礼
                                                            2020.6.11
                                                            CodeLiu
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

:joy:不要沉下去

4年前 评论
  • 问题1: JWT_REFRESH_TTL 有效期内, 不论 JWT_TTL 是否过期, 都能 refresh 到新的 token.

  • 问题2: 通过官方 refresh 方法更新的 token, 会共享之前的 refresh 有效期, 也就是说 如果你在 10min 更新到了 token1, 20min 用 token1 又更新到了 token2, 那么接下去能更新的时间只剩下 40 分钟了.

  • 问题3: 个人以为如果是 app, 有效期可以很长(半个月 ~ 半年, 涉及金融安全方面的话可以设为天); 小程序反正直接通过 openid 能获取用户信息, 再直接返回 token, 所以无所谓, 可以设置久一些, 1天或1个月.

ps: 对问题2, 我的做法是需要更新时, 不直接用 tymon/jwt 的 refresh 方法, 而是通过认证后, 重新生成一个新的 token (tokenByUser()), 这样的话, JWT_REFESH_TTL 也就变成 60min, 而不是像之前一样, 一直减小

4年前 评论

@bea现在的问题就出在1上面,当token过期了,去刷新新的token就显示 "message": "Unauthenticated."

file

不知道哪里设置的不正确。。。。。 愁死了

4年前 评论

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