在前面文章中,我们聊了自建账号体系的注册和登录:
也聊了利用微信和QQ进行第三方登录,并详细讲述了原理和流程:
然后,有朋友留言问到了:
QQ音乐、王者荣耀使用微信和QQ登录,是不是第三方登录?
是的,但毕竟它们都是腾讯的亲儿子,所以能获取更多的权限和接口。微信和QQ账号,已经成为用户在网络上的身份ID. 腾讯手握微信和QQ两大账号体系,所向披靡。
今天,我们看下另外一种形式的登录:SSO(Single Sign On)单点登录。
平时很少逛淘宝和天猫,最近逛了一下,发现一个有意思的现象:当登录淘宝网页后,打开天猫网页时,天猫也自动登录了,这其实就是SSO单点登录。
从业务上讲,淘宝和天猫都是阿里巴巴的亲儿子,让它们共用账号体系,也是顺其自然的事情。但是,淘宝和天猫域名不同,存在跨域问题,无法直接实现cookie和session共享,那么,淘宝和天猫如何实现SSO呢?
从技术上讲,SSO有很多种实现方式,淘宝和天猫的具体实现方式,我们不得而知。如下来聊聊一种典型的SSO.
下图是SSO的交互流程,其中CAS Server就是SSO后台服务, Protected App可以理解为淘宝后台, 而Protected App #2可以理解天猫后台:
我们可以看到,通过SSO, 如果用户登录了淘宝,自然就登录了天猫。如果退出登录淘宝,天猫自动退出登录。SSO的原理并不难,搞懂了SSO, 有利于理解前端和后台的一些重要知识。SSO也是很多笔试和面试的常见考点。
好的,先聊到这里。