如何跨域获取Cookie
程序员文章站
2022-05-26 20:40:38
...
cookie可以跨子域访问,如果用户信息保存在qq.com的cookie中,那么对于pay.qq.com, cb.qq.com是可以直接取到该cookie的。
但是如果qq.com.cn,qq.cn都要拿qq.com中的cookie时,cookie的存、放的操作该怎么办?
1)cookie不能跨根域,但js可以跨根域,在a.com登录后,用js的方式将cookie值传给
a.com.cn 形如a.com?cookie=XXX 在a.com.cn 中再保存一次该域名的cookie,这样的问题是可能存在不同的cookie 域包含同一个cookie值
2)直接跨根域读写是不可行的,浏览器不允许,比如qq.com要访问qq.cn的cookie,只能是qq.cn服务器自己读取cookie然后对外开放才行,比如提供qq.cn/getqqcnCookie.do服务,返回qq.cn的cookie信息,然后qq.com发出getqqcnCookie的请求给qq.cn,当然这个请求必须用JsonP的方式,下文“淘宝如何跨域获取Cookie分析”解释了这一方式。
3)采用SSO(Single Sign On)单点登录方式。
参考文章
淘宝如何跨域获取Cookie分析
http://developer.51cto.com/art/201104/255729.htm
JS跨域设置和取Cookie
http://developer.51cto.com/art/201104/256793.htm
【原创】ASP.NET 安全认证(四)
——巧妙实现 Form 表单认证跨站点、跨服务器的单点登录(Single Sign On)
http://blog.csdn.net/sweetsoft/article/details/592408
但是如果qq.com.cn,qq.cn都要拿qq.com中的cookie时,cookie的存、放的操作该怎么办?
1)cookie不能跨根域,但js可以跨根域,在a.com登录后,用js的方式将cookie值传给
a.com.cn 形如a.com?cookie=XXX 在a.com.cn 中再保存一次该域名的cookie,这样的问题是可能存在不同的cookie 域包含同一个cookie值
2)直接跨根域读写是不可行的,浏览器不允许,比如qq.com要访问qq.cn的cookie,只能是qq.cn服务器自己读取cookie然后对外开放才行,比如提供qq.cn/getqqcnCookie.do服务,返回qq.cn的cookie信息,然后qq.com发出getqqcnCookie的请求给qq.cn,当然这个请求必须用JsonP的方式,下文“淘宝如何跨域获取Cookie分析”解释了这一方式。
3)采用SSO(Single Sign On)单点登录方式。
参考文章
淘宝如何跨域获取Cookie分析
http://developer.51cto.com/art/201104/255729.htm
JS跨域设置和取Cookie
http://developer.51cto.com/art/201104/256793.htm
【原创】ASP.NET 安全认证(四)
——巧妙实现 Form 表单认证跨站点、跨服务器的单点登录(Single Sign On)
http://blog.csdn.net/sweetsoft/article/details/592408