如何实现模拟登陆,BladeX系统作为公司的SSO客户端

Blade 未结 1 983
8855709
8855709 剑圣 2021-11-29 15:09

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

1. 公司原有一套SSO服务端,想把BladeX系统集成进去做单点登陆,然后用iframe嵌套进去。

2. 我的做法就是在Gateway中,增加一个filter,用来先一步拦截SSO是否已经登陆了,如果未登陆直接跳转到SSO服务端登陆地址,如果已经登陆了,希望能够在Gateway中完成自动登陆,并记录登陆状态,后续就不再拦截,自动Pass去访问其他服务了。

3.


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

用代码实现自动登陆,同时不影响现有的BladeUser的登陆体系。怎么实现,能够详细指导下吗?


顺便问一下,咱们有做单点登陆的计划吗?有的话就更好,其实这块更适合作为SSO的服务端,毕竟用户和组织架构想在BladeX框架中管。

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


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


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

1条回答
  • 2021-12-01 23:59

    未来会采用jap来实现单点登录,不过目前还没有这个功能。

    代码自动登录的话,你需要写一个免密码登录的功能,传入账号和加密串,在后台进行校验,如果校验成功则自动返回token给前端,前端获取到token就设置到内存,这样就默认登录了。


    具体做法为:

     1. 访问后经过你们的逻辑判断需要默认登录

     2. 跳转到前端写的一个空白页面,加一个loading条

     3. 空白页面接收账号,同时调用自定义的token接口

     4. 后台校验成功,返回token

     5. 前端接收token并设置缓存

     6. 成功后js跳转至系统首页

     

    注意:因为已经先一步设置好了token,那系统每次调用接口都会进行token传递,这样也就达到免登录的功能了

    0 讨论(0)
提交回复