1.每一个应用都要包含uc_client,下面拿uchome代码举例

2.uchome登陆时访问source/do_login.php 的getpassport函数,getpassport通过uc_client 直接连ucenter的数据库,实现当前站点的登陆

3.uchome然后调用$ucsynlogin = uc_user_synlogin($setarr['uid']);实现跨域登陆

4.在uc_user_synlogin函数里再用uc_client/client.php的fsockopen去访问ucenter下的index.php默认超时15秒

5.在ucenter下的index.php根据请求的model和action和appid请求control/user.php 的onsynlogin函数

6.onsynlogin函数通过循环,对系统下的所有应用(在data/cache/setting.php)做JS调用

7.返回到uchome.在每个应用下的api目录有个uc.php文件查找$action == ‘synlogin’下面是进行cookie设置

obclean();
header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘);
这两行是必须的 下面setcookie设置cookie

8.这样就在ucenter知道的所有应用下添加了cookie  实现了跨域登陆

自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

本文链接地址: ucenter实现跨域单点登陆的方法 http://www.chhua.com/web-note4481

相关笔记

更多