PHP应用session对两个不同的服务器网站进行同步登录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP应用session对两个不同的服务器网站进行同步登录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1781字,纯文字阅读大概需要3分钟。
内容图文
PHP 使用session对两个不同的服务器网站进行同步登录现在有两个服务器
a:www.test1.com
b:www.test2.com
我想在test1里面进行登录,然后在test2里面也同样进行登录,请问这个该怎么写?
我有部分测试代码如下
在test1登录的时候,如果登录成功那么就执行下面
$fp = pfsockopen("www.test2.com",80,$errorno,$errormsh);//连接服务器
if ($fp){
$out = "GET /login.php?acc=".$acc."&psw=".$psw." HTTP/1.1\r\n";
$out.= "Host:www.test2.com\r\n";
$out.= "Connection: Close\r\n\r\n";
fputs($fp, $out);
fclose($fp);
}
然后在www.test2.com里面的login.php文件
$acc = $_GET['acc'];
$psw = $_GET['psw'];
$_SESSION['acc'] = $acc;
$_SESSION['psw'] = $psw;
然后我访问www.test2.com
发现session为空啊
求高手指教! PHP session 跨域? 登录? 分享到:
------解决方案--------------------
如果单点登录这么容易搞得话,那些 SSO 服务商不都要倒闭了?
session 依靠 cookie 携带的 sessionid 做唯一性识别
而正常的 cookie 是不能跨域的。虽然利用一些技术手段可以实现 cookie 跨域,但这毕竟是利用了规则上的漏洞,并不可取。
我们知道,如果一个网站有设置了失效期的 cookie 的话,当浏览结束时就会在浏览器缓冲区留下一个以该网站域名的 cookie 文件。当再次访问该网站时,这个上次保存的 cookie 就会被发送回去
因此,你只要在访问 www.test1.com 的时候,设法留下一个 www.test2.com 的 cookie 文件
那么你再访问 www.test2.com 的时候就能实现同步了
怎么留?在 www.test1.com 返回的页面中用 iframe 或 js 访问一下 www.test2.com 的特定文件
当然,这只是基础,需要考虑的问题远不止这点
------解决方案--------------------
只要 www.test2.com/login.php 是在 www.test1.com 返回的页面里面调用的就可以
就是说你在访问 www.test1.com 的同时也访问了 www.test2.com
这样 www.test1.com 的 cookie 供访问 www.test1.com 用
www.test2.com 的 cookie 供访问 www.test2.com 用
------解决方案--------------------
“在 www.test1.com 返回的页面里面调用”是指请求是从浏览器发出的,这样返回的 cookie 才会被浏览器保存
内容总结
以上是互联网集市为您收集整理的PHP应用session对两个不同的服务器网站进行同步登录全部内容,希望文章能够帮你解决PHP应用session对两个不同的服务器网站进行同步登录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。