Bladex如何将token信息保存至redis中

Blade 未结 2 189
jkme1987
jkme1987 2020-04-03 10:11

一、该问题的重现步骤是什么?

  1. 调用blade-auth/oauth/token接口,获取token;


二、你期待的结果是什么?实际看到的又是什么?

 1.期待的结果:在redis中看到token信息;

 2.实际看到的是:redis中无token信息;


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

当前正在使用的产品BladeXAvue联合版,版本2.4.0.RELEASE ,操作系统:windows


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

  1. 请问在Bladex项目中该如何实现token信息保存到redis中?

  2. token的刷新只能靠前端的定时器调用接口刷新?如果后端要实现动态刷新token失效时间又该如何实现呢?

  PS:如果第一个问题能解决的话,第二个问题倒是可以利用redis的缓存失效时间来实现。

2条回答
  •  1. 目前是前后端分离架构,采用了无状态token认证,所以token是没有状态,也无法判断在线的

     2. token刷新必须从前端操作,可以做定时刷新,也可以做自动刷新(请求接口返回token失效后,单独调用一下刷新token接口,然后再次调用原先的接口)后端动态刷新能实现,但这样是不可取的,后端不知道前端有没有登陆,一直在刷新token。一是给后端带来了极大的压力,二是会让token一直不过期,等于没有意义了。

     3. 如果需要实现有状态,那么需要对接到redis。可以从AuthUtil.getUser()方法来拓展实现。

    0 讨论(4)
  • 2020-04-03 10:51

    感觉改成redis 存储的话 在gateway filter 以及授权校验那块都得改了。我擦 再添加讨论那提交了好几次评论提交不了 只能写回答 这是bug吗?手动@smallchill

    0 讨论(0)
提交回复