JWT怎么给Token续期

用户登录后服务器给客户端返回一个token,token存在客户端,每次请求都带上这个token,如果token过期了只能重新登录获得新的token;假如我的token有效时间是5分钟,用户在使用过程中每5分钟又要登录一次,请问大家是如何给token续期的呢?每次请求都给客户端返回一个新的token吗?

阅读 11.6k
3 个回答

JWT 的特性导致无法续期,因为过期时间已经写在 Token 里了,你不可能主动通知所有使用这个 Token 的客户端都更新……

正确的做法应该是用 RefreshToken 机制来让用户无感知。

其实上面 @悟者 说的是有道理的,但没必要每次都返回新的,客户端判断快要过期的时候再去后台刷新就好了。

你要是想要实现服务端单端就能主动续约那种,那为啥非得用 JWT?

每次请求都给客户端返回一个新的token吗?
没错,就是这样

在服务端保存token的过期时间,当接收到一个新请求时,如果这个token没有过期,就给这个token的过期时间增加一段有效期,用户继续使用原有token访问,并不需要每次都返回一个新token。过期后才需要重新登录并返回新的token。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进