今天按照官网的例子
把ucenter弄下来了,直接用官网的例子,用户注册登录的什么都好使。就是不不能同步登录。
研究了好久才发现 Ucenter_client的注册用户只增加在 pre_ucenter_members 表的的,所以你用ucenter的登录接口可以登录成功,但是 .$ucsynlogin 这个是返回空的,正常应该返回一串javascript来设置cookies,这样discuz也就自动同步登录的。
用接口注册的用户,你去discuz用户管理哪里是看不到的,这个时候新增一个同名的却发现用户已经存在了,提示激活即可。一点激活了,再看看 $ucsynlogin ,丫的这个时候才有代码返回了。。。
所以在第三方应用同步用户的页面
uc_clientmodeluser.php 的 add_user 函数 的return前增加以下这个激活用户的语句
//begin $this->db->query("INSERT INTO `discuz_x2`.discuz_common_member SET uid='$uid', username='$username', password='$password', email='$email', adminid='0', groupid='10', regdate='".$this->base->time."', credits='0', timeoffset='9999'"); $this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_status SET uid='$uid', regip='$regip', lastip='$regip', lastvisit='".$this->base->time."', lastactivity='".$this->base->time."', lastpost='0', lastsendmail='0'"); $this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_profile SET uid='$uid'"); $this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_field_forum SET uid='$uid'"); $this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_field_home SET uid='$uid'"); $this->db->query("INSERT INTO `discuz_x2`.discuz_common_member_count SET uid='$uid', extcredits1='0', extcredits2='0', extcredits3='0', extcredits4='0', extcredits5='0', extcredits6='0', extcredits7='0', extcredits8='0'"); //end