可以先看下这边文章:http://blog.chinaunix.net/uid-25508399-id-3431705.html
 

1、点击首页的登陆按钮跳转到京东的登陆中心https://passport.jd.com/new/login.aspx?ReturnUrl=http%3A%2F%2Fwww.jd.com%2F,然后输入用户名、密码验证,验证通过跳转到ReturnUrl指定的地址,也就是京东首页

2、首页通过Jquery.getJSON()方法发起http://passport.jd.com/new/helloService.ashx请求,跨域获取需要跨域设置登陆cookie的应用列表,返回一个Json数据

3、js遍历sso,通过jQuery.ajax()方法对其中的每条数据发起跨域的jsonp请求,我猜测京东的js代码大概是这么写的

  1. <script type="text/javascript">
  2. $.ajax({
  3. type:"get",
  4. dataType:"jsonp",/*-----------------------*/
  5. url: "http://sso.jd.com/setCookie?t=sso.minitiao.com&callback=?",/*-----------------------*/
  6. crossDomain:true,/*-----------------------*/
  7. success: function(data){
  8. },
  9. beforeSend:function(){
  10. },
  11. complete:function(data,status){
  12. }
  13. });
  14. </script>

请求的结果是这样的:

可以看到返回一个重定向的Response,而且是跨域的重定向,由于发起的是跨域的jsonp请求,所以浏览器会根据返回的重定向url发起一次请求,也就是最后的跨域设置Cookie的请求

4、浏览器发起sign请求跨域设置Cookie,请求和返回结果如下

返回的Response header中含有Set-Cookie项,这样就在sso.minitiao.com域名下设置了Cookie,可以打开sso.minitiao.com发现确实有了ceshi3.com这样一个Cookie

5、至此京东就完成了单点登录的全过程

http://blog.csdn.net/clh604/article/details/20365967

京东商城跨域设置Cookie实现SSO单点登陆过程的更多相关文章

  1. SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

    最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...

  2. 通过P3P头实现跨域设置cookie

    PHP的setcookie函数可以设置域,但是只能在当前域内,如果出现多域可由如下办法处理:实现原理:www.b.com/set_cookie.php   在b域名下设置a域名的cookie < ...

  3. jsonp跨域设置cookie

    html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...

  4. 使用p3p跨域设置Cookie

    有些时候不能将url上的参数传来传去,比如与调用某开放平台上的接口,这时候可能需要借助Cookie来进行处理了,但这里可能又涉及到跨域的问题. 如果浏览器开启了对Cookie的支持,按照Cookie ...

  5. nodejs 跨域设置cookie

    在做vue全家桶+express 做项目. 想做一个免登陆功能,选择session方案. 服务器设置session 后, 返回的响应头有Set-Cookie,但是浏览器的Application的coo ...

  6. 通过设置P3P头来实现跨域访问COOKIE

    通过设置P3P头来实现跨域访问COOKIE 实际工作中,类似这样的要求很多,比如说,我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是PASSPORT的功能. 我只写一个大 ...

  7. PHP 通过设置P3P头来实现跨域访问COOKIE

    CentOS的系统(Linux 内核) 编辑HOST vi /etc/hosts 加入127.0.0.1 www.a.com127.0.0.1 www.b.com 首先:创建 a_setcookie. ...

  8. chrome浏览器的跨域设置——包括版本49前后两种设置

    做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程.但是新版本的chrome浏览器提 ...

  9. CP="CAO PSA OUR" 用P3P header解决iframe跨域访问cookie

    1.IE浏览器iframe跨域丢失Session问题 在开发中,我们经常会遇到使用Frame来工作,而且有时是为了跟其他网站集成,应用到多域的情况下,而Iframe是不能保存Session的因此,网上 ...

随机推荐

  1. Training #2 cell battle (BFS)

    Constraints: 1 <= R, C <= 500 1 <= T <= 5 Sample Input: 5 3 5 ##### a...b ##### 3 4 #### ...

  2. jenkins 配置主从机制(master-slaver)

    1. 中文:系统管理——节点管理——新建节点(左上侧) 英文:Manage Jenkins——Manage Node——新建节点(左上侧) 2. 中文配图 英文配图: 3. 远程工作目录 以mac为例 ...

  3. 接口调用实现类&& 为什么Autowired定义在接口上

    1.接口与回调 package edu.cqu.interfaceTest; import java.awt.Toolkit; import java.awt.event.ActionEvent; i ...

  4. iOS native plugin 的代码sample

    https://bitbucket.org/Unity-Technologies/iosnativecodesamples/src/stable/ 不在这个stable版本 在2017 dev这个版本

  5. python瞎练

    需求:有不规则列表 singlelist3 = [ '总计', '每吨人工:', '总人工', 1748.07, '金额'],如果当前元素为字符串且该元素的下一个相邻位置仍为字符串,那么请在该元素后面 ...

  6. C语言编译错误:Variably modified array at file scope

    今天在编译一段C源程序时,遇到编译错误提示 error: variably modified 'data' at file scope.原因在于代码头部有这样几行: +; int data[maxsi ...

  7. retrying failed action with response code: 403 错误解决

    [2019-06-10T06:52:51,610][INFO ][logstash.outputs.elasticsearch] retrying failed action with respons ...

  8. 创建一个新的laravel

    //创建laravelcomposer create-project laravel/laravel shop 安装好 Laravel 之后的下一步是设置你的应用密钥为随机字符串.如果你通过 comp ...

  9. mybatis标签selectkey无法返回主键值

  10. java实现上传文件夹

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...