SSO的简单实现思路 (参考淘宝天猫的SSO实现)

三个系统实现跨域访问: A系统,B系统,SSO系统

 

登录:

访问A时,发现没登录,跳转到SSO登录后,跳转回来

 

访问B系统:

访问B时,ajax到B确实是否登录 ?

    >  用户在B系统登录了,那么照常操作即可

    >  用户没有在B系统登录,则302 或者另外发一个ajax 跨域到SSO拿登录信息 (类似于 https://login.taobao.com/jump?target=https%3A%2F%2Ftmcc.tmall.com...)

          >>  SSO如果没登录,则跳转去登录即可。

          >>  SSO如果登录了,则返回加密后的用户信息及登录凭证。此时302 或者 另外发一个ajax 将 加密后的用户信息及登录凭证 交给B系统,进行session和cookie的创建,进行B系统登录 。

               (类似于 https://pass.tmall.com/add?t=xxx&lgc=xxx&_tb_token_=xxx......)

 

其中有一个细节要注意: 

    如果B系统登录的请求还未完成,要阻塞前端其他系统自动发出的ajax。

posted on 2019-08-18 16:09  HB1  阅读(599)  评论(0)    收藏  举报

导航