tinywan/jwt refreshToken 原来的token 不会失效么?可否增加 token 的宽限时间

Van Chin

// 登录时 生成 token
$old_token = JwtToken::generateToken($admin->toArray());

// $old_token 过期时间内 刷新token 

$new_token = JwtToken::refreshToken();

// 刷新之后  $new_token $old_token   新旧 两个token 经过验证 都是可以用的 

请求 这个插件 或 jwt 能否实现 刷新token之后 原来的token 失效

或者 刷新之后 让 旧token 有一定的 宽限时间 ,宽限时间 过了之后就 失效(验证不通过)

设置宽限时间是为了 解决并发请求问题

1117 2 2
2个回答

czf

refreshToken 每次刷新后,加入一个黑名单set就可以。
可以这样理解,refreshToken 是xxx天内没有没有登录就是时失效。

  • Van Chin 2022-09-10

    还是需要 缓存或数据库 来配合,解决 jwt 在服务端的无状态的设计

Tinywan
  1. 刷新 refresh_token 就是给予 访问 access_token 过期之后使用,如果你在未过期刷新调用,则旧的就是可以使用
  2. 宽限时间是否可以具体说明?
  • 咸鱼.php 2022-09-11

    https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

    2、目前access_token的有效期通过返回的expires_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器可对外继续输出的老access_token,此时公众平台后台会保证在5分钟内,新老access_token都可用,这保证了第三方业务的平滑过渡

    微信公众号的获取Access token的第二条,我的理解应该是这个意思吧

  • Van Chin 2022-09-11

    @Tinywan 刷新之后 能让 旧token 失效的基础之上,才有 宽限时间

    假定 刷新之后 旧token 会立刻失效,

    在刷新的同时或刷新后的瞬间 会有(并发)请求会携带 旧token 进行请求,

    这个时候,希望 旧 token 能在一个很短的时间内 继续有效,

    这个 “很短的时间” 就是 旧 token 的 宽限时间

    描述的很不专业,不知道是否能 看懂

    宽限时间 主要是想用来 解决刷新token 及 客户端还没替换新token 这个时间区间 发送的(并发)请求,带来的一些问题

  • czf 2022-09-12

     稍微研究了下那个refresh token,好像如果能拿到token,refresh token 会一直通过刷新一直可以登录

  • Tinywan 2022-09-12

    @Van Chin leeway 这个配置参数是否可以解决你的问题?

年代过于久远,无法发表回答
🔝