其他业务系统与bladeX对接是否能用token直接登录?

Blade 未结 1 364
pltuo
pltuo 剑童 2025-04-25 18:11

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

我们集成了nutFlow工作流插件,希望我们其他的业务系统能直接通过token鉴权跳过登录直接进入到工作流插件“我的待办”模块。我们目前设想的场景是将集成了工作流插件的BladeX作为一个通用的工作流平台,由业务系统中发起,实际流程在BladeX工作流插件中完成,并且业务系统的待办直接使用工作流插件的【协同办公】。

    问题一:上述描述的场景是否可以实现?

    问题二:在实际集成探索的过程中,我们希望通过token直接跳过登录实现鉴权,该方式是否可行?
                    以下是我们实际操作的步骤:

  1. 首先,根据文档《5.1.9.2 系统认证创建配置》,我自定义了token获取接口并获取到了token(经测试该token能通过api接口鉴权)

    1745574817767.png

  2. 然后,我用其他的业务系统,通过接口方式获取到token

  3. 现在我希望能直接通过其他业务系统访问到工作流插件的“我的待办”模块,地址为http://localhost:1888/plugin/workflow/pages/process/todo (IP按实际部署调整)

    1745575063868.png

  4. 请问是否有办法通过第二步拿到的token直接跳过登录验证?我尝试存在缓存里没有生效,仍然会跳转到登录界面(两套系统部署的服务器ip不同)


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

我期待的结果:能够通过token直接跳转到工作流插件的“我的待办”模块
实际看到的结果:跳转后直接回到了登录界面


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

Blade版本:

4.5.0 release

前端版本:
saber 4.5.0


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


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

1条回答
  • 2025-04-25 18:38

    技术上实现没难度,但是比较繁琐,正常思路是这样的:
     1. 访问连接带token : http://localhost:1888?refreshToken=xxx&redirectUrl=/plugin/workflow/pages/process/todo

     2. 在首页增加这两个参数的获取,把refreshToken传递过来的参数写入到本地缓存

    CleanShot20250425183727@2x.png

    CleanShot20250425183617@2x.png 


    3. 参考下图调用refreshToken的dispatch方法,他会自动刷新token,userInfo可以不传

    CleanShot20250425183801@2x.png

    4. 回调函数获取url传参的redirectUrl,并且做路由跳转就可以了。

    作者追问:2025-04-29 15:07

     感谢老师的回复!根据老师的思路我已实现该功能,但是发现一个引申的问题,还辛苦老师指点迷津:
        我现在能够实现通过token直接进入页面,但是如果在页面上退出登录后,再次通过token进来界面是一片空白。控制台提醒【No match found for location with path "/plugin/workflow/pages/process/todo"】,请问这是什么原因呢?(空白后,再次拷贝url进去是可以正常进入的,该问题发生在退出登录后第一次进入。并且这个过程中我使用的是同一token)

    一、该问题的重现步骤是什么?
    1.通过token直接进入系统,调用url为http://localhost:1888/tokenLogin?token=xxx&refreshToken=xxx&redirectUrl=/plugin/workflow/pages/process/todo 其中tokenLogin为我自己写的中转页面,代码如下:
    1745747720235.png
    2.此时能直接进入工作流插件的【我的待办】模块
    3.在进入的页面上点击头像,再点击退出登录,此时系统自动回到登录页面
    image.png
    4.然后,再次拷贝url进浏览器,进入后页面如下,调用接口比正常进入少了一部分。但是通过地址看,鉴权应该是过了,并且也调用接口获取了菜单
    1745748093388.png5.此时控制台上会提示【No match found for location with path "/plugin/workflow/pages/process/todo"】
    1745748059485.png
    6.再次拷贝url,回车可以正常进入

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

    我期待的结果:退出登录后,再次通过同一token拼接的url应该也能访问系统吧,是不是菜单项之类的缓存有问题呢?
    实际看到的结果:退出登录后再次访问,跳转后界面空白并且控制台提示【No match found for location with path "/plugin/workflow/pages/process/todo"】


    0 讨论(0)
代码语言
提交回复