关于跨域名的信息共享P3P实例
首先我这里用到了redis 和 p3p技术。当然任意的nosql都可以满足
模拟的一个登陆访问的客户端。
<?php
session_start();
$get = $_GET; if($get['uname'] == 'ftt'&& $get['pass'] == '')
{
$token = md5(rand());
$_SESSION['user'] = 'ftt';
$_SESSION['islogin'] = ; save_redis($token,json_encode($_SESSION));
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
$file .= '<script type="text/javascript" src="http://o3web.demo.com/P3pApi/index?token='.$token.'" reload="1"></script>';
echo $file; }
else
{
echo 'None';
} function save_redis($keys,$value)
{
try{
$_redis = new Redis();
$res = $_redis->connect('10.10.112.195','');
} catch(RedisException $e)
{
print_r($e);
} $_redis->set($keys,$value); } ?>
下面是接受的接口。
<?php namespace _O3web\Controller; use Think\Controller; /*
* @desc
* @author Carey
* @time 2016年4月25日14:50:44
* @ps 用于和o3提交数据的
*/ /* p3p协议用于对o3登录用户的sesion信息获取 */
class P3pApiController extends BaseController { /* 获取p3p协议的 token标示并写入cookie中 */
public function index() {
$token = I('get.token');
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie('token', $token, time()+,'/');
} }
我会在自己的需要的页面的init或者bese里面加载。
<?php
/*
* 公用控制器
* @author Carey
*/
namespace _O3web\Controller; use Think\Controller; class BaseController extends Controller { public function _initialize(){
load_ext_config('configType',FALSE); //调用配置文件
$ref = $this->set_ref();
$this->assign('ref',$ref); /* 将o3的用户登录信息 */
$userinfo = array();
if(!isset($_SESSION['userinfo']) && empty($_SESSION['userinfo'])){ //如果SESSION中没有用户信息那么通过redis获取p3ptoken中的用户信息
$userinfo = $this->P3p();
if(!empty($userinfo)){
$_SESSION['userinfo'] = $userinfo;
$this->assign('is_uid',); //如果is_uid是1那么就是登录状态
}else{
$this->assign('is_uid',); //如果is_uid是2那么就是没有登录
}
}else{
$this->assign('is_uid',); //如果is_uid是2那么就是没有登录
} } /* p3p获取o3用户登录信息 */
public function P3p(){
\Predis\Autoloader::register();
$a = new \Predis\Client();
$info = $a->get($_COOKIE['token']);
return json_decode($info,TRUE);
}
关于跨域名的信息共享P3P实例的更多相关文章
- 两系统用asp.net forms 身份验证方式实现跨域登录信息共享
1.两个系统的 web.config 都配置为 forms 验证方式( system.web —> authentication 节点) 2.在两个系统的Web.config里配置相同的 sys ...
- 循序渐进Java Socket网络编程(多客户端、信息共享、文件传输)
目录[-] 一.TCP/IP协议 二.TCP与UDP 三.Socket是什么 四.Java中的Socket 五.基本的Client/Server程序 六.多客户端连接服务器 七.信息共享 八.文件传输 ...
- 循序渐进Socket网络编程(多客户端、信息共享、文件传输)
循序渐进Socket网络编程(多客户端.信息共享.文件传输) 前言:在最近一个即将结束的项目中使用到了Socket编程,用于调用另一系统进行处理并返回数据.故把Socket的基础知识总结梳理一遍. 1 ...
- 完全跨站点跨域名单点(SSO)同步登录和注销
先来说说什么是单点登录(SSO).来自百科的介绍:SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主 ...
- C#共享内存实例 附源码
原文 C#共享内存实例 附源码 网上有C#共享内存类,不过功能太简单了,并且写内存每次都从开头写.故对此进行了改进,并做了个小例子,供需要的人参考. 主要改进点: 通过利用共享内存的一部分空间(以下称 ...
- JAVA Socket(多个客户同时连接,信息共享) client (java/ruby)
第一步 充分理解Socket 1.什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字" ...
- [php-cookie] cookie 请求跨域,如何共享
cookie 请求跨域的问题, 假设我有两个域名,一个 m.example.com,另一个是 www.example.com . 那么我需要如何设置 cookie 才可以在这两个域名都实现共享呢? / ...
- Tomcat实现多域名之间session共享
最近启用二级域名后,面临一个主域名与二级域名之间 session 不能共享的问题,带来的麻烦就是用户在主域名登陆,但由于二级域名 session 不能共享 ,因此无法进行登陆的操作,对一些功能有一些影 ...
- linux nslookup-查询域名DNS信息的工具
博主推荐:更多网络测试相关命令关注 网络测试 收藏linux命令大全 nslookup命令是常用域名查询工具,就是查DNS信息用的命令. nslookup4有两种工作模式,即“交互模式”和“非交互模 ...
随机推荐
- 开发人员必读openstack网络基础
云计算中的网络非常复杂,需要对网络的基础理论有一定的认识和了解,转载网上针对openstack中涉及到网络概念的文章 开发人员必读openstack网络基础1:什么是L2.L3 开发人员必读opens ...
- Memcached在windows下安装与使用
建议:windows系统下仅为测试所有,生产环境下服务端应使用Linux系统. 本文最后更新于:2014-08-03 18:24 原文:http://www.yaosansi.com/post/mem ...
- HashMap实现原理分析(转)
文章转自:http://blog.csdn.net/vking_wang/article/details/14166593 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但 ...
- BZOJ1047: [HAOI2007]理想的正方形 [单调队列]
1047: [HAOI2007]理想的正方形 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2857 Solved: 1560[Submit][St ...
- Eclipse swt开发环境搭建
原料: eclipse swt.下载链接为: Eclipse 4.6.2 Release Build: 4.6.2 配置说明: Developing SWT applications using Ec ...
- TCP connect的错误返回值
如果是TCP套接字,调用connect函数将激发TCP三次握手过程,而且仅在连接建立成功或出错时返回,其中错误返回可能有下面几种情况: (1)若TCP客户没有收到SYN分节的响应,则返回ETIMEDO ...
- 利用缓存实现APP端与服务器接口交互的Session控制
与传统B/S模式的Web系统不同,移动端APP与服务器之间的接口交互一般是C/S模式,这种情况下如果涉及到用户登录的话,就不能像Web系统那样依赖于Web容器来管理Session了,因为APP每发一次 ...
- CSS3-3D制作案例分析实战
一.前言 上一节,介绍了基础的CSS3 3D动画原理实现,也举了一个小小的例子来演示,但是有朋友跟我私信说想看看一些关于CSS3 3D的实例,所以在这里为了满足一下大家的需求,同时也为了以后能够更好的 ...
- c3p0数据源的使用初步及Mysql8小时问题解决
原文:http://blog.csdn.net/xby1993/article/details/23707775 c3p0号称是java界最好的数据池. c3p0的配置方式分为三种,分别是 1.set ...
- Cache,MemCache,Application,Cookie等其它缓存汇总
为了提高网页运行速度我们用到了各种缓存技术,今天就来汇总下,相信聪明的你也一定会有所收获的o(^▽^)o 1.Cache(PS:看见一个博客介绍的不错,我就直接Copy了) Cache 即高速缓存.那 ...