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
评论