[跨域] -- cookie跨域共享
来源:互联网 发布:网络电视剧收视率 编辑:程序博客网 时间:2024/06/05 08:57
原文地址: http://www.cnblogs.com/super-d2/p/4719660.html
PHP使用P3P完成COOKIE跨域操作
实际实用中,类似的需求有,比如说我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是单点登录(SSO)功能。
为了测试的方便,先编辑hosts文件,加入测试域名
sudo vim /etc/hosts
192.168.1.112 www.a.com
192.168.1.112 www.b.com
代码实现
www.a.com域名下的代码文件:
[a_setcookie.php]
<?php
//header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
?>
[a_getcookie.php]
<?php
var_dump($_COOKIE);
?>
www.b.com域名下的代码文件:
[b_setcookie.php]
<?php
//header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test", $_GET['id'], time()+3600, "/", ".b.com");
?>
[b_getcookie.php]
<?php
var_dump($_COOKIE);
?>
依次访问
http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php
会发现a.com域上已经有cookie值了
代码分析
在www.b.com的域名下给www.a.com创建cookie。
若用户登录到www.b.com中,由此域名的b_setcookie.html中js实现方式给www.a.com域名设置cookie。
假设www.a.com域名下的a_getcookie.php有cookie则设定www.a.com登录成功。
b_setcookie.html:
<script src="http://www.a.com/a_setcookie.php?id=www.b.com"></script>
总结P3P的在上述代码中最主要的职责是:
跨域产生 cookie
注:上述代码在非IE下测试,即使不发送P3P头信息,也能成功。IE浏览器必需发送P3P才能成功!所以要跨域产生cookie还是有必要发送P3P的,毕竟IE的用户群体还是很大的。
参考:
http://my.oschina.net/goal/blog/199978
- [跨域] -- cookie跨域共享
- 跨域共享Cookie
- cookie跨域共享
- Cookie跨域共享
- 跨域共享cookie
- 跨域共享cookie
- 实现跨域cookie共享
- 实现跨域cookie共享
- 解决跨域cookie共享
- 实现跨域cookie共享
- 实现跨域cookie共享
- COOKIE 的跨域共享
- Cookie的跨域共享
- cookie用法小结 cookie.setPath 跨域共享
- 实现跨域cookie共享(转载)
- jquery.cookie中的操作(跨域共享)
- 实现跨域cookie共享(转载)
- 实现跨域cookie共享(转载)
- git 的基本使用
- 实际项目中的工作流工作原理
- webservice篇之高级开发(四)
- Android:控件GridView的使用
- IEEE软件工程标准词汇表定义需求
- [跨域] -- cookie跨域共享
- 记一次 Data Binding 在 library module 中遇到的大坑
- windows删除“找不到该项目”的文件
- Xposed开发指南
- The Free Lunch Is Over - Bombe
- UIAlertController的用法
- CSS实现的几款不错的菜单栏
- 面向对象设计原则
- 计算机网络粗略概括