为什么登录页的登录之后,单点登录还需要登录。单点登录登录成功,首页也还需要登录。

Blade 未结 2 682
8855709
8855709 剑圣 2022-08-10 19:05

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

1. 第三方系统作为Oauth2客户端,已经开发完成。接入了BladeX项目。

2. 按道理,同一个浏览器如果BladeX已经登陆了,那么我第三方系统再单点登录进来的时候,应该是直接“同意/授权”,而不是还要再输入账号密码。

3.或者,同一个浏览器,BladeX系统未登录情况下,当我第三方系统,先通过单点登录,输入账号密码,授权登录之后。我再访问BladeX系统,也不应该还需要登录了。


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

现在的问题就是,我们的单点登录跟系统登录,好像是完全两套系统。如果我一个系统集成到BladeX的单点登录中,即便是登陆了BladeX,还需要重复登陆单点登录。


我期望的结果是:BladeX登录后,子系统不需要再登录了。只需要授权即可。


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


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


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

2条回答
  • 2022-08-11 11:02

    并不是所有用户都需要单点登录,所以我们没有把saber、sword的登陆页强制转换成sso登录,而是给了一个链接让用户主动触发sso的登录地址。

    你的需求很简单,保持现状的同时,nginx做一个反向代理配置,把现有登陆页,登录的时候直接跳转到单点登录页面就行,不需要在手动点击。

    如果不想配置nginx,也可以在登陆页写一段js,登陆页渲染时直接跳转到配置好的单点登录页。

    这样你访问所有系统都会先跳转到单点登录页面了。

    作者追问:2022-08-11 11:22

    现在的问题是,抛开第三方系统。我即便是在登录页右下方,点击了SSO单点登录,然后登录成功在SSO页面授权跳转回首页,还是需要在登录页登录。

    0 讨论(0)
  • 2022-08-11 11:24

    您看下地址栏

    第一步:

    image.png


    第二步:

    image.png

    第三步:回来还是要登录。

    image.png


    我仔细产看了下,是返回的时候,缺少state参数。

    正常来说,oauth/authorize发送之后,回调的时候,会给一个code和一个state参数。这样就是对的,我第三方接进来OK了。

    image.png



    但是通过我们自己BladeX的登录页面的“单点登录”进来,请求是这样的:

    跳转后的地址,缺少了state字段,导致了跳转之后,无法进入首页,还是进入的登录页。

    image.png



    0 讨论(0)
提交回复