单点登录: 单点登录某个系统,会把其他系统的登录变更无效

Blade 未结 2 672
石老记
石老记 2025-08-25 14:13

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

1.   多系统结构是这样的,有A,B两个系统,A系统作为门户系统,提供单点登录的 ssoBaseUrl

     A系统,B系统都有自己的一套bladex报表,也需要独立的菜单数据和用户权限


2.  先登录A系统(单点登录), 登录成功

3.  在登录B系统(单点登录),登录成功

4.  在切换会A系统的访问链接,刷新,被提示 “认证信息错误或者无效”, 然后必须再次执行登录流程。

5. A登录成功后,再切换到B访问链接,也被提示“认证信息错误或者无效”, 然后必须再次执行登录流程。

6. 如此往复,发现在一个恶心循环里,就是任意单点登录的系统会把其他已完成单点登录系统无效,导致每次都需要重新执行登录流程



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

单点登录完成后,其他系统也能单点登录成功,同时使用独立系统菜单数据展示自己的菜单权限


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

boot版本,linux系统

4.5.0.RELEASE


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


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

请问,问题是不是处在,登录到不同系统后,由于相同用户在不同系统间的菜单和角色不一样,导致cookie等无效,被视为每次都要登录?


我的理解是,单点登录只是帮我为此id和密码以及登录token的有效时间长,

为什么跟系统独立权限强关联?



2条回答
  •  admin
    admin (楼主)
    2025-08-25 14:15

    修改这里的token的两个key:https://center.javablade.com/blade/Saber3/src/commit/787feb0b9b887cbce4da372c090fc42d453093c6/src/utils/auth.js#L3


    每个系统都需要修改下,这样就不会共用逻辑

    作者追问:2025-08-25 14:15

    image.png

    请问你说的修改key是tokekey,refreshtokey?内容呢?

    我自己任意命名?


    回答: 2025-08-25 14:15

    修改 token的两个key 


    意思就是两个token的key的变量都需要修改,可以随意修改,只要不和其他系统的key冲突就行。

    作者追问:2025-08-25 14:15

    出现新问题,就是某个系统登出,其他系统不会被自动登出

    回答: 2025-08-25 14:15

    token是无状态的,所以默认设置下不会受登出影响。如果你要全部登出,需要把token保存到redis,一个退出后,就删掉所有相关token,这样其他系统就自动退出了。

提交回复