最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php+ajax实现多域名跨域登录例子(基于P3P)
时间:2022-06-24 17:24:27 编辑:袖梨 来源:一聚教程网
该同步登陆需求需满足以下三个关键点:
1)A域名下登陆的用户,跳转到B域名下时实现同步登陆;
2)B域名下点击A域名下的退出链接,实现A域名与B域名的同时退出
3)用户直接访问B域名时,可以自动判断A域名下是否存在用户登录,如果存在,则实现B域名下的用户同步登陆。
首先解决跨域的同步登陆登出,有以下可行的解决思路:
1)两个域共享SESSION服务器,即统一的内存服务器,这样两个域下的SESSIONID会相同,会自动无缝实现同步登陆登出;
但该解决方案需要额外的硬件投入,并且需要懂这方面部署的技术人员
2)通过url传递sessionid
3)通过P3P协议获取跨域的SESSION
为解决该需求,我经过查询各种资料,并拟定了自己的一套解决方案,分享给大家,其要点如下:
1)当用户在A域名下登录后,访问A域名下网站时,会ajax请求B域下的js脚本文件,写入B域COOKIE及SESSION,实现B域下登录;
2)当用户在A域名下退出后,访问A域名下网站时,会ajax请求B域下的js脚本文件(同登录参数不同),清除B域COOKIE及SESSION,实现B域下登出;
3)当用户直接访问B域网页时,请求A域下脚本,判断A域下是否存在登录,如果存在,则将COOKIE及SESSION赋值到当前域的网页中,通过ajax实现当前域
COOKIE及SESSION的写入。
我将a域名设定为A域名;B域名设定为B域名。
以下是相关代码:
代码如下 | 复制代码 |
#############a域名ApiController.php ################# ############# B域名 getbtsck.html ################# |
该方案尚存在的不足:
当用户直接访问B域时,需要加载一次该页面后,才能判断是否在A域登录,并写入当前域(B域)的SESSION
相关文章
- PS怎么添加皮肤纹理?PS给人物皮肤添加真实的纹理效果教程 07-12
- 微信公众号怎么做推广? 微信公众号快速曝光的教程 07-12
- 王者荣耀莱西奥踏浪烽翎怎么获得-莱西奥踏浪烽翎免费获取方法 07-12
- 游玩上海发朋友圈的文案 07-12
- 崩坏星穹铁道晨昏之眼替罪羊解谜指南 07-12
- 银与绯高级突破材料获取方法一览 07-12