一、该问题的重现步骤是什么?
我想建立一个UAS中间层,北向:对接集团已有的oauth2统一验证,南向:对应多个独立部署的bladex 微服务版;注意,不需要UAS层再做用户名密码登录,集团已经实现了(会发code,以code换集团的token,再查到用户信息)。由UAS基于jwt产生token,多个cloud工厂使用相同的算法进行token的验证:
bladex cloud的后端只做验证token,不会保存token吧?如果有保存,在redis存?还是哪个service和数据表?多个应用必须要共用一个redis?
多个独立部署的工厂,如果共用一个redis,会不会因为key相同导致错乱?
因为只是基于jwt生成token,集团已经由第三方软件实现了统一登录授权,不用bladex boot的统一授权,因此觉得bladex boot如果再部署一套会太沉重也没有太多用途,想简洁一些单纯使用springboot+jwt开发
UAS生成token后要免密直接进入系统,token直接转到工厂的saber就可以了,还要调用 bladex-tool中的模块blade-core-oauth2中的哪个方法,或者直接调用userservice中某个方法?
二、你期待的结果是什么?实际看到的又是什么?
1. UAS基于jwt产生token能在多个bladex cloud通用和共享
2. 以参数最少最简洁的方式能直接进入系统,比如只有一个用户名(工号)
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex 4.4 linux
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
bladex默认模式下(state参数默认为false)只对jwt做校验,不做保存,没有用redis。
你改造下面认证逻辑里关于新token的校验就行了,所有接口都可以问号挂参携带 blade-auth参数来传递token。你也可以跳转到首页的时候携带新token,自己拓展逻辑在首页判断有新token传递过来就自动设置到系统本地,后续调用接口自动把本地保存的新token作为参数传递。
前端自动截取token参数,并且进行写入到本地的逻辑,你可以在这里拓展
https://center.javablade.com/blade/Saber3/src/branch/master/src/page/login/index.vue#L97
后端认证逻辑在这里:
扫一扫访问 Blade技术社区 移动端