有这样两个网站,a.com和b.com,在登录网站a.com后,进入b.com自动登录,反过来也一样。总之两个网站的登入登出状态保持同步。此外,在a.com和b.com之外,还有无数同样的不同域名的网站需要同步登录状态。
例如多说评论系统,登录一次后,在其他使用多说的网站可以免登陆,这是如何做到的?
SSO(single sign on)
你说的这种情况可以用上面的方案来解决,这种方案有很多实现方式,你可以去查找看一下。
我也举一个简单的例子:
当你在某个网站登录的时候,
1) 他获取了你的用户名和密码,将其发送到后台
2) 通过检验后由后台生成一个加密认证字符 oauth
3) 然后向前台发送信息说你成功登录,同时再利用后台脚本向一系列指定的域名下插入相关认证信息。
这样你虽然只是在一个域名下登录了,但是其他域名下也有了你的认证信息。当然上述只是一种实现方案,还有一些
实现方式和这种差的挺大的。
浏览器所有保存状态的方法,都是按域保存的。以cookie为例,假设你是要在a.com使用b.com的授权登录,当你登录的时候调用了oauth,那么其实你是跳转到b.com进行登录的,那么你的浏览器就会保存b.com登录状态。那么当你在c.com登录的时候,你的浏览器已经保存了b.com的登录状态,那么自然就可以自动登录了。当然,a.com和c.com在浏览器中是无法获取到b.com的状态的。
a.com
b.com
c.com
给你几个关键字吧,单点登录、document.cookie domain(当然还有其他的方法。)
下面有个资源,可以看哈,https://m.toutiao.com/group/6...
简单的理解:所有的网站都查询一个只做登录的服务器
SSO(single sign on)
你说的这种情况可以用上面的方案来解决,这种方案有很多实现方式,你可以去查找看一下。
我也举一个简单的例子:
当你在某个网站登录的时候,
1) 他获取了你的用户名和密码,将其发送到后台
2) 通过检验后由后台生成一个加密认证字符 oauth
3) 然后向前台发送信息说你成功登录,同时再利用后台脚本向一系列指定的域名下插入相关认证信息。
这样你虽然只是在一个域名下登录了,但是其他域名下也有了你的认证信息。当然上述只是一种实现方案,还有一些
实现方式和这种差的挺大的。
浏览器所有保存状态的方法,都是按域保存的。以cookie为例,假设你是要在
a.com
使用b.com
的授权登录,当你登录的时候调用了oauth,那么其实你是跳转到b.com
进行登录的,那么你的浏览器就会保存b.com
登录状态。那么当你在c.com
登录的时候,你的浏览器已经保存了b.com
的登录状态,那么自然就可以自动登录了。当然,a.com
和c.com
在浏览器中是无法获取到b.com
的状态的。给你几个关键字吧,单点登录、document.cookie domain(当然还有其他的方法。)
下面有个资源,可以看哈,https://m.toutiao.com/group/6...
简单的理解:所有的网站都查询一个只做登录的服务器