token与session的区别

  1. token可以是分布式的,即拿到一个token可以访问多个应用(比如说分布式应用)。
  2. session是依赖于浏览器的,通过jessionid来识别用户身份。
  3. 前后端分离的项目,如果存在跨域,使用session的方式就会比较麻烦(这时需要修改前后端设置,最终达到前端携带cookie,传给后端的效果)。

    token的颁发

token的刷新

token一般都是有存活时间的,比如30分钟。存活时间已过的话,就需要进行刷新。

提前刷新

假设token失效的时间为2小时,那么提前30分钟进行更新。在这30分钟内,新的 和 老的 token同时生效,但是获取新的token的方式得是同步的。

黑名单+存活时间

这时候如果存在多个请求调用 刷新接口,可以采用黑名单+存活时间的方式处理。也就是说在生成 新的token 的同时(需要是同步方法),将老的token放入黑名单,并添加存活时间(比如说3分钟)。在存活时间内,如果使用了老的token访问还能够正常获取到数据。这样可以实现无限延长(不存在因token失效而产生的无效请求)的效果。