关于系统之间的单点登陆对接

这里说的单点登陆,不是正规的那种有个中间服务做的,(如CAS).差不多是一种假的单点登陆.

但是在工作需求有时候会遇到, 尤其是做定制化产品. 一个客户买了我们公司一个产品, 同时买了另外一个公司的产品.现在想让这两个产品进行单点登陆,一般是这A系统需要打开到B系统做一些操作,或者调用B系统的一些接口等操作.基于开发成本,一般不会集成一个单点登陆中心.而是用两边的sessionId共享来解决.

方案:

1.在A系统需要调用B系统的界面时,先调用B系统的接口,把A系统中的当前用户信息传过去

2.B系统接口获取到用户信息, 在B系统中进行登陆操作.(此处省去用户信息同步的逻辑,按需求开发)

3.B系统完成登陆后,把该用户在B系统的sessionId.返回给A系统

4.A系统接收到来自B系统的sessionId, 作为一个token,在缓存/内存中也存下来,例如用一个map结构. key:A系统中的sessionId, value:B系统返回的sessionId(token).

5.随后A系统调用B系统的任何请求和界面,都带上token.

6.B系统中则根据系统自身的认证拦截来调整逻辑,实现免登陆

7.A系统用户登出时, 同时调用B系统. 作登出操作

以上是大概的流程.具体代码后面再补充

发布了60 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40085888/article/details/105399185
今日推荐