关于跨域名的信息共享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有两种工作模式,即“交互模式”和“非交互模 ...
随机推荐
- nodejs处理get请求
主要记录下获取get请求里面的参数的问题. 假设有这样一个链接 urlString='hello?name=LiLei&position=general' 要从这个链接里提取出参数name和p ...
- TCP通信丢包原因总结
今天在公司问老大,公司的项目底层,是使用的TCP,因为可靠,自动断线重连,在底层都实现了,但是我记得TCP也会有掉包的问题,所以这文章就诞生了——关于TCP掉包的问题,TCP是基于不可靠的网络实现可靠 ...
- OSI七层模型
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- linux 系统工具集
Htop Htop是一款非常先进的交互式实时Linux进程监测工具.它非常类似Linux top命令,但是有一些丰富的功能特性,比如易于使用的界面,可用于管理进程.快捷键.进程的垂直和水平视图以及其他 ...
- VS2013问题与解决方法
问题: Getting Error "'Microsoft.VisualStudio.Editor.Implementation.EditorPackage' package did not ...
- zookeeper原理
Zookeeper与paxos算法:http://www.riaos.com/ria/11299 Paxos算法1:http://blog.csdn.net/chen77716/article/det ...
- BZOJ 3531: [Sdoi2014]旅行 [树链剖分]
3531: [Sdoi2014]旅行 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1685 Solved: 751[Submit][Status] ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- 用extract-text-webpack-plugin提取出来的css文件中背景图片url的不正确的问题
在一个main.js中require一个scss文件,scss文件中用了背景图片,图片url是用的相对路径,用extract-text-webpack-plugin插件提取出的css文件背景图片路径不 ...
- Linux 进程间通讯详解二
消息队列 --消息队列提供了本机上从一个进程向另外一个进程发送一块数据的方法 --每个数据块都被认为有一个类型,接收者进程接收的数据块可以有不同的类型值 --消息队列也有管道一样的不足,就是每个消息的 ...