Laravel jwt 的参数设置逻辑貌似有点小问题
jwt中定义了token的有效时间ttl(官方默认是1个小时),token的有效刷新时间refresh_ttl(官方默认是2周),假如现在生成某个token,那么:
一个小时内 : token可以正常使用
一个小时外,两周内: 解析token会抛出异常token过期,需要人为捕获异常再去刷新token(即重新生成token)返回
两周外 : 解析token抛出异常token过期,捕获异常去刷新token抛出无法刷新异常。
从上可知,
token的有效时间ttl < tokentoken的有效刷新时间refresh_ttl,
刷新前提是捕获解析token时抛出的过期异常。
为什么不反过来这么设置:
token的有效时间ttl > tokentoken的有效刷新时间refresh_ttl,
即设置ttl为2周,refresh_ttl为1个小时,那么:
一个小时内 : token可以正常使用
一个小时外,两周内:解析token时,token没有过期,但是需要刷新,并返回刷新后的token
两周外:解析token时,抛出token过期的异常
推荐文章: