总结ucenter整合遇到的问题

目前,我把主网站和论坛分离了。 ucenter和主网站在一起。
首先我搬家主站,然后搬ucenter。这过程就遇到很多问题。
同步登陆的问题已经解决。现在要处理论坛头像的问题。。真是头疼。

UCENTER整合登陆时出现’Authorization has expired’错误

‘Authorization has expired’ 这个错误
原来一看,是BBS,UCENTER,UCHOME那台机器的时间不对了,调整过来后就可以顺利登陆了.
另外,由于使用两台机器,存在COOKIE跨域问题,因此其实A机器用域名就可以了,比如a.abc.com,
B机器用B.ABC.COM,就可以顺利解决这个问题了

===============================================================

解决ucenter uc_user_synlogin没有返回值

在登录页面, 同步登陆的接口函数 uc_user_synlogin() 没有返回值,可是uc_user_login()以及uc_get_user()都可以获取到返回值,所以应该不是配置的问题。 我知道返回的是一段JS,可是没有。

解决: 客户端 /ucenter/data 目录和目录下的权限改成777即可

==========================================================

直接删除ucenter 通知数据不会影响其他:TRUNCATE TABLE uc_feeds;

========================================================================
附资料:

ucenter实现跨域单点登陆的方法
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调用如下
$synstr .= ‘‘;
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”‘);
这两行是必须的
8.这样就在所有ucenter知道的应用下添加了cookie实现了跨域登陆