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实现了,犹豫了三秒钟还是不上了):
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。