`
singleant
  • 浏览: 375152 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【web】跨域cookie同步方案

阅读更多

最近因为项目,需要了解在不同的域名下,同步登陆状态等cookie。

于是兄弟公司那了解了一种跨域同步cookie的方案。

 

场景: 有时一个公司可能有多个不同域名的网站,比如sina.com和weibo.cn,比如taobao.com和tmall.com。

这些网站背后很多是同一套会员体系。由于http协议规定cookie是跟着域名走的,这时就需要在不同的域名下同步登陆状态,避免出现用户体验上出现需要二次登陆验证的情况。

 

假设下面这样一个场景:

用户在 bbb.com上已经登陆,现在要去aaa.com上玩,在aaa.com域名下暂未登录。需要访问的aaa.com/resource.html资源需 要登录才能访问。两个网站是同一套会员体系,同一个公司的。这是要让用户体验上做到用户在aaa.com上玩也能识别出登录状态。

 

以上面场景为例,下面画了个实现跨域同步简单流程图:


解释如下:

第一步 :用户向aaa.com发起get请求,获取resource.html资源,aaa.com发现用户未登录,返回302状态和外部重定向url:

j.bbb.com?target=www.aaa.com/resource.html

注意j.bbb.com子域名上部署的应用可以认为是专门用了跨域同步。

第二步 :用户根据重定向url,访问j.bbb.com?target=www.aaa.com/resource.html,由于在bbb.com上已经登 录,所以bbb.com上能拿到从client端传递过来cookie信息。子域j.bbb.com上的应用负责将cookie读取出来,并作为参数再次 重定向到

 

p.aaa.com?tartet=www.aaa.com/resource.html&sessionid=xxx&loginId=xxx&……

 第三步 :用户根据第二步重定向url,访问p.aaa.com。p.aaa.com子域名上的应用专门负责根据请求参数里的参数对,往aaa.com域写入cookie,并重定向到用户第一步请求的url。

第四步 :经过前三步,已经完成了再aaa.com域名下同步bbb.com的登录状态,用户再次请求aaa.com/resource.html,这是就能成功访问了。

 

 

(全文完)

分享到:
评论
1 楼 gds_fighting 2012-11-09  
谢谢分享,请教一个问题:常用的同步登陆状态方案都有哪些?我能想到的是用分布式缓存,总感觉cookie不安全,希望楼主给解释一下

相关推荐

    cookie-sync-simulation

    1网页在沙盒1上从nginx获取html和javascript 在网络浏览器上运行JavaScript 访问sandbox-2 nodejs脚本获取沙盒2域Cookie 发出沙盒1域Cookie 将Cookie信息插入网页,并在Web浏览器上显示跨域Cookie同步信息设置本地PC...

    精易web浏览器支持库视频教程

    第二课 目录结构介绍 调试器打开失败的解决方案。第三课 自定义Cookie 以及 LocalStorage 存放目录。第四课 填表功能的两种模式详解(选择器)。第五课 跨域框架填表。第六课 为什么模拟点击元素无效(事件处理函数详解...

    koan:KOAN(Koa,Angular,Node,Mongo)入门套件,用于全栈JavaScript Web开发

    KOAN Stack是一个样板,它为使用 , 和以及和进行全栈JavaScript Web开发提供了起点。 技术堆栈摘要: 客户端:AngularJS和Bootstrap。 客户端是完全静态的,并且已准备好CDN。 所有客户端软件包都位于client\bower...

    DiscuzToolkit接口Demo源码

    NT发布的REST式web service,支持任何web技术系统和Discuz!NT进行跨域的整合。利用API可以在整合程序中调用用户资料,版块,帖子等内容,来开发跟论坛高度整合的应用程序。 项目中包括登录登出的方法,可以为论坛写...

    Vue项目实战+PHP接口开发(微信扫码关注实现自动登陆)

    六、如何解决接口前后端分离引起的跨域问题以及在跨域下使用cookie凭证进行会话维护 后端你讲学习到: 一、如何申请微信公众号测试账号,如何进行相关参数的配置,如何进行微信相关接口的开发 二、如何使用微信...

    python入门到高级全栈工程师培训 第3期 附课件代码

    02 并发并行与同步异步的概念 03 GIL的概念 04 同步锁 05 递归锁 06 同步对象event 07 信号量 08 线程队列 09 生产者消费者模型 10 多进程的调用 第35章 01 进程通信 02 进程池 03 协程 04 事件驱动模型 05 IO模型...

    白帽子讲浏览器安全.钱文祥(带详细书签).pdf

    本书兼顾攻击者、研究者和使用者三个场景,对大部分攻击都提供了分析思路和防御方案。本书从攻击者常用技巧的“表象”深入介绍浏览器的具体实现方式,让你在知其然的情况下也知其所以然。 第1篇 初探浏览器安全 1 1...

    Java常见面试题208道.docx

    160.zookeeper 怎么保证主从节点的状态同步? 161.集群中为什么要有主节点? 162.集群中有 3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗? 163.说一下 zookeeper 的通知机制? 十七、MySql 164....

    Eclipse开发分布式商城系统+完整视频代码及文档

    跨域调用taotao-rest服务.avi │ 打开必读.txt │ 淘淘商城第五天笔记.docx │ ├─06.第六天 │ 01.内容复习.avi │ 02.课程计划.avi │ 03.cms系统分析.avi │ 04.内容分类列表展示.avi │ 05.添加节点、及课后...

Global site tag (gtag.js) - Google Analytics