京东商城跨域设置Cookie实现SSO单点登陆过程
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代码大概是这么写的
- <script type="text/javascript">
- $.ajax({
- type:"get",
- dataType:"jsonp",/*-----------------------*/
- url: "http://sso.jd.com/setCookie?t=sso.minitiao.com&callback=?",/*-----------------------*/
- crossDomain:true,/*-----------------------*/
- success: function(data){
- },
- beforeSend:function(){
- },
- complete:function(data,status){
- }
- });
- </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单点登陆过程的更多相关文章
- SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析
最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...
- 通过P3P头实现跨域设置cookie
PHP的setcookie函数可以设置域,但是只能在当前域内,如果出现多域可由如下办法处理:实现原理:www.b.com/set_cookie.php 在b域名下设置a域名的cookie < ...
- jsonp跨域设置cookie
html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...
- 使用p3p跨域设置Cookie
有些时候不能将url上的参数传来传去,比如与调用某开放平台上的接口,这时候可能需要借助Cookie来进行处理了,但这里可能又涉及到跨域的问题. 如果浏览器开启了对Cookie的支持,按照Cookie ...
- nodejs 跨域设置cookie
在做vue全家桶+express 做项目. 想做一个免登陆功能,选择session方案. 服务器设置session 后, 返回的响应头有Set-Cookie,但是浏览器的Application的coo ...
- 通过设置P3P头来实现跨域访问COOKIE
通过设置P3P头来实现跨域访问COOKIE 实际工作中,类似这样的要求很多,比如说,我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是PASSPORT的功能. 我只写一个大 ...
- PHP 通过设置P3P头来实现跨域访问COOKIE
CentOS的系统(Linux 内核) 编辑HOST vi /etc/hosts 加入127.0.0.1 www.a.com127.0.0.1 www.b.com 首先:创建 a_setcookie. ...
- chrome浏览器的跨域设置——包括版本49前后两种设置
做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程.但是新版本的chrome浏览器提 ...
- CP="CAO PSA OUR" 用P3P header解决iframe跨域访问cookie
1.IE浏览器iframe跨域丢失Session问题 在开发中,我们经常会遇到使用Frame来工作,而且有时是为了跟其他网站集成,应用到多域的情况下,而Iframe是不能保存Session的因此,网上 ...
随机推荐
- 【转载】python format遇上花括号{}
在format string中, 大括号已经被format占用,想要使用大括号本身,该怎么办? 以下转载自这里. ============ 分割线 ============ 使用format时,字符串 ...
- 对于写Python学习笔记的看法
学习写笔记是一个不错的学习方法,好些同学在学习Python过程中也会写学习笔记.俗话说好记性不如烂笔头,我很赞同这个说法. 我列举几个学习Python写笔记的好处: 1.Python知识的二度巩固 通 ...
- golang shell 交叉编译
#!/usr/bin/env bash set -e uname_s=`uname -s | awk '{print tolower($0)}'` uname_m=`uname -m` timeTag ...
- Tomcat conf/server.xml 配置项详解
本文参考来源:https://blog.csdn.net/a314368439/article/details/60132783# <Server port="8005" s ...
- jquery 去除 css 的 background-image 样式
首先我使用了这个: $('#**').css('background-image', null); 没有效果...... 然后我用了这个: $('#staffName').css('backgroun ...
- 微信小程序 base64ToArrayBuffer
base64ToArrayBuffer 将 base64 的字符串转化为 ArrayBuffer 对象 示例代码: 使用位置:在 JS文件的任意函数中使用 const base64 = 'CxYh'; ...
- ProjectEuler237 Tours on a 4 x n playing board
思路是这样的 插头dp-->打表-->OEIS查表-->通项公式-->矩阵快速幂优化线性递推 OEIS竟然有这个东西的生成函数啊 答案为15836928 这是最终代码 #inc ...
- Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/bin/tensorboard'
使用pip install --user tensorflow-serving-api命令即可
- Java数据库小项目00---基础知识
目录 JDBC的简单使用 向JDBC注入攻击 防止注入攻击 自建JDBC工具类 自建工具类优化--使用配置文件 使用数据库连接池优化工具类 JDBC的简单使用 package Test; import ...
- Educational Codeforces Round 34 (Rated for Div. 2) B题【打怪模拟】
B. The Modcrab Vova is again playing some computer game, now an RPG. In the game Vova's character re ...