统一认证中心

Blade 未结 1 146
312237823
312237823 剑圣 2024-04-03 16:35
悬赏:5

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

1. 我们想实现这样一个功能,我们用户登录系统后,点击连接,跳转到另一个系统中,另一个系统可以直接通过oauth认证拿到用户数据,无需用户再进行登录的操作,实现两个甚至多个系统的无缝切换。

2. 我们做一个统一的入口,里面有其他平台接入进来。

3.其他平台接入进来以后,就是在应用中心配置clientid ,密钥,跳转地址等这些参数。

4.怎么实现呢?目前用的是正常验证码登录的方式,进到系统后,点击其他系统配置的跳转连接,如http://192.168.2.10:131/blade-auth/oauth/authorize?client_id=blade&redirect_uri=http://localhost:8888&code=233333&response_type=code&state=000000,这个地址配置的是网关地址131端口,它会跳转到blade-auth服务的/auth/login,给用户弹出登录界面,让用户登录,

5、实际上用户已经登录过了呀,走的是正常的验证码登录 ,也是调用的blade-auth服务产生的token呀,为什么还让认证呢?理论上不应该直接让用户授权就可以直接返回code,然后对方系统拿着code换token,再去请求用户信息,生成子系统的用户,生成子系统的token?

6、也想过是不是地址变了,token不能使用的原因,因为我们用传统的验证码登录时,地址是前端的址址,nginx代理/api、请求转发的,就将上面跳转地址也改了,如我们前端地址是192.168.2.10:8000,我们把上面的跳转地址前面改成 192.168.2.10:8000/abc-auth/oauth/authorize?........,nginx 代理 /abc-auth 到 blade-auth服务如192.168.2.10:8100,这样前端跳转还是同一个域名同一个端口,

7、登录使用的是192.168.2.10:8000,跳转用的也是这个地址,可还是不行!!!还是一样跳转到登录界面,连登录界面的CSS,js都没正常加载(这不是主要问题,暂时也没处理它),登录时已经生成过token,为什么还让登录呢?

8、是我哪里使用的不对吗?


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

blade - cloud  3.2.0版本 windows

希望大佬们能给予详细的解答,怎么才能实现我们这种应用场景,

就是我们登录后,里面会有其他应用接入,点击可直接跳转到对方平台,免登录。

1条回答
  • 2024-04-07 11:25

    单点地址1:

    http://192.168.250.23:8999/oauth/authorize?client_id=saber&tenant_id=000000&response_type=code&redirect_uri=http://192.168.250.23:2888/login

    单点地址2:

    http://192.168.250.23:8999/oauth/authorize?client_id=saberTest&response_type=code&tenant_id=000000&redirect_uri=http://192.168.250.23:3888/login


    流程:

    首先访问地址1,输入租户id、用户名、密码,进入授权页面,点击同意授权,进入项目首页;
    再访问地址2,不需要输入用户名、密码,直接进入授权页面,点击同意授权,进入项目2首页。

    这个场景你能通吗?

    0 讨论(0)
提交回复