5

1.什么是单点登录

 单点登录:一个账号多个系统同登录登出。
 这里说的多系统是指每个系统有自己的域名。
 说的更简单点就是多个有独自域名的系统登录登出跟一个系统一样。
 单点登录方便安全什么的种种优点略过,用上自然会知道。

2.实现单点登录

其实就是解决一个问题:跨域登录通讯
解决这个问题有三个方法:
    1.共享session,存一份session所有系统共用,统一通过sso系统创建销毁。session没过期则是登录,过期则登出
    2.共享cookie(局限:上级域名相同才能共享),把sessionid写到上级域名cookie下共享,再通过sso和serivce服务端验证登录状态
    3.jsonp,这个相比前面两个有点小复杂,今天重点说的就是这个方案。sso提供四个接口:
        1.登录
        2.登出
        3.jsop接口:sso登录状态,所有业务系统以该接口的登录状态为准,根据需要返回ticket(sso 要对获取ticket的频率做控制确保安全)
        4.ticket和ticket生成签名的验证并返回登录用户信息
    
    jsonp方案登录流程如图(肯定会有人问为什么不上代码,代码我用php实现了,犹豫了三秒钟还是不上了):

clipboard.png


weizx
69 声望0 粉丝