跨域获取cookie,多个网站实现一键登录

A网站首页PHP(也可以在登录页面加入下面的代码)加入如下代码
<?php 
//清空cookies
setcookie("mywinduid");
//为B页面权限设置cookie, setcookie("mywinduid",$winduid,time()+60*60*24);//设置为1天失效,下面为关闭浏览器失效
setcookie("mywinduid",$winduid);
?>

 

A网站增加文件getcookies.php,目的是为了让B网站可以以ajax方式来查询A网站的cookie
getcookies.php 代码如下 
<?php
$callback = $_GET['jsoncallback'];
$mywinduid = $_COOKIE['mywinduid'];//多个参数的话以","隔开,例如json_encode(array('winduid'=>$winduid,'msg'=>$msg));
//可以用json_encode自动转换,也可以手写json格式 $json_data = '{"mywinduid":'.$mywinduid.'}';
$json_data = json_encode(array('mywinduid'=>$mywinduid));
//必需以下这样形式输出,重点就是发送请求的网页的参数中要有jsoncallback参数
echo $callback.'('.$json_data.')';
?>

 

在需要查询A网站cookie的B网站页面中增加如下代码
<script type="text/javascript" src="jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
<script type="text/javascript">
$(function(){	
	$("#adminwhj").click(function(){//点击B网站中的登录按钮,这地方也可以不需要用click,直接打开页面就获取cookie
		var myurl = "http://www.a.com/getcookies.php?action=getcookie";
		$.getJSON(myurl+"&jsoncallback=?", function(data){		
			if(data.mywinduid!="" && data.mywinduid!= null){
				var winduid = data.mywinduid;
				if((winduid==4)||(winduid==2)){
					$.cookie('mywinduid',winduid);//设置cookies
					location.reload();//刷新页面
				}else{
					alert("您没有管理权限!");
				}
			}else{
				alert("请在www.a.com登录后再进行管理");
			}
		})	
	})
})
</script>
 
下面是B网站的这个页面中需要做权限判断的代码
<!--需要权限的判断开始-->
<? 
$winduid=$_COOKIE["mywinduid"];
if (($winduid==4)||($winduid==2)) 
{<!--管理需要的代码-->}
?>

 

 

整个原理就是,B网站上文件可以通过A网站的getcookies.php来获取A网站的cookie,然后在B网站的页面提供权限判断,这样B网站中不需要再单独做用户登录

 提供jquery库最新版的下载,以及jquery.cookie.js的下载

http://www.huaian.org/fancybox/jquery-1.6.1.min.js
http://www.huaian.orgfancybox/jquery.cookie.js
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值