新手关于 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
:joy:不要沉下去
问题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, 而不是像之前一样, 一直减小@bea现在的问题就出在1上面,当token过期了,去刷新新的token就显示 "message": "Unauthenticated."
不知道哪里设置的不正确。。。。。 愁死了