zoukankan      html  css  js  c++  java
  • 京东商城跨域设置Cookie实现SSO单点登陆过程

    可以先看下这边文章: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代码大概是这么写的

    [javascript] view plain copy
     
    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.   
    15. </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

  • 相关阅读:
    <Graph> Topological + Undirected Graph 310 Union Find 261 + 323 + (hard)305
    <Topological Sort> ( 高频, hard) 269
    <Stack> (高频)394 ( 高频)224
    <DFS & BFS> 286 339 (BFS)364
    <Matrix> 311 378
    <Binary Search> 81 (高频)34 (很难hard, 高频)315 (hard)354
    <LinkedList> 369 (高)143 (第二遍)142 148
    <DP> (高频)139 375 374 (DP hard)312
    <BackTracking> permutation 254 47 60
    <Tree> 298 250 366 199(高频) 98(高频)
  • 原文地址:https://www.cnblogs.com/tianciliangen/p/8085014.html
Copyright © 2011-2022 走看看