SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程

涉及的关键知识点:

1、

跨域redirect实例:

test.html

跟test.html同域名下的test.php

header('Location:http://video.luojisiwei-inc.com/');//跨域重定向

http://video.luojisiwei-inc.com/index.php

echo 'aaaaaaaaaa';

setcookie('vtest','ooooooooooo');//跨域设置cookie

die;

访问test.html,在firebug下看到请求的结果

客户端先给test.PHP发ajax请求,然后被重定向到http://video.luojisiwei-inc.com下,并且返回一个Set-Cookie的Response,这样就实现了跨域重定向和跨域设置Cookie

然后浏览器中访问http://video.luojisiwei-inc.com,发现该域名下确实有了个叫vtest的Cookie

京东商城跨域设置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代码大概是这么写的

请求的结果是这样的:

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

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

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

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

php跨域单点登录,SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析...相关推荐

  1. Cookie登录爬取实战:Python 利用urllib库的cookie实现网站登录并抓取

    1 环境:Python 3 +urllib库 实战网站:http://www.mjzcnd.com/  梅江之春论坛网站 2 背景: 现在许多网站都需要登录后才能访问某个页面,在登陆之前,我们是没有权 ...

  2. [Python]网络爬虫(三):使用cookiejar管理cookie 以及 模拟登录知乎

    大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在 ...

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

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

  4. 完全跨域的单点登录(SSO)解决方案源码解析

    为什么80%的码农都做不了架构师?>>>    本文介绍的是一种PHP的开源SSO解决方案,可完全跨域,实现较简洁,源码地址:https://github.com/legalthin ...

  5. 前后端分离单点登录SSO实现方案 淘宝、京东跨域获取Cookie、OAuth2、QQ客户端多种模式

    演示Demo站点 http://sso.exrick.cn 开源版Github地址 https://github.com/Exrick/x-boot) 开发文档 https://www.kanclou ...

  6. 多域单点登录SSO系统的实现

    多域单点登录SSO系统的实现 天幻网新的规划中,将涉及到多域,如FFSKY.COM,FFSKY.CN等等,因此网上某些对同一域靠设置COOKIE的DOMAIN=".FFSKY.COM&quo ...

  7. 基于域控的SSO单点登录

    大家好,好久不见,今天老吕给大家来一篇偏冷门知识的文章. 一.需求 大型集团企业内部会有许多业务系统,工作人员也往往需要登录多个业务系统才能完成工作,这就可能会存在一些问题 1.多套账号与密码需要记录 ...

  8. 跨域 Cookie 实现单点登录

    单点登录 单点登录(SSO - Single Sign On):对于同一个客户端(例如 Chrome 浏览器),只要登录了一个子站(例如 a.com),则所有子站(b.com.c.com)都认为已经登 ...

  9. 基于.Net的单点登录(SSO)解决方案

    基于.Net的单点登录(SSO)解决方案 前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助. ...

最新文章

  1. 亚马逊AWS 数据中心起火,致 5 人死亡、50 人受伤
  2. python win32转pdf 横版_使用Python3将word文档和pdf电子书进行格式互转(兼容Windows/Linux)...
  3. 时间序列研(part1)--随机过程
  4. 【2018.4.14】模拟赛之三-ssl2393 单元格
  5. python Json的一点收获,自定义序列化方法
  6. mysql安装innodb插件
  7. linux ruby 安装路径,Linux(CentOS 7)安装ruby
  8. 大厂面试算法系列-如何从无序链表中移除重复项(二)-递归法
  9. 路由器用到坏才换?路由器你在乎哪些功能?
  10. Hibernate在配置表映射文件时cascade的类型及意义
  11. 基于FPGA实现uart串口模块(Verilog)--------发送模块及整合
  12. window xp系统安装php环境_在Windows XP下安装Apache+MySQL+PHP环境
  13. cart决策树Matlab实现,CART决策树的理解及其实现
  14. 一夜之间ChatGPT火遍全球,程序员的饭碗保不住了吗
  15. java实现oracle的months_between函数
  16. 11. python入门复习教程之命名空间与作用域,再谈异常,标准库,持久化与序列化
  17. 俺就不說話,找虐,直接上代碼。
  18. mes系统故障_MES系统故障恢复探讨
  19. 一个JAVA程序员经常访问的网站
  20. 用android后勤报修系统,后勤微信报修系统—易报修

热门文章

  1. 《Linux设备驱动程序》学习2—高级字符设备驱动ioctl
  2. python全栈之nginx安装
  3. 2018,抢票大作战
  4. 复习笔记——操作系统
  5. 阿里云将增设马来西亚数据中心 中国技术获赞
  6. SpringMVC+Apache Shiro+JPA(hibernate)案例教学(三)
  7. PHP计算表达式-栈
  8. 自我辩证之计划是否该坚持?
  9. 配置apache虚拟主机
  10. SQL Server DATEDIFF() 函数(SQL计算时间差)