1. 程式人生 > >discuz Ucenter第三方雙向同步登錄

discuz Ucenter第三方雙向同步登錄

client color 但是 str urn edits for cti syn

今天按照官網的例子

把ucenter弄下來了,直接用官網的例子,用戶註冊登錄的什麽都好使。就是不不能同步登錄。

研究了好久才發現 Ucenter_client的註冊用戶只增加在 pre_ucenter_members 表的的,所以你用ucenter的登錄接口可以登錄成功,但是 .$ucsynlogin 這個是返回空的,正常應該返回一串javascript來設置cookies,這樣discuz也就自動同步登錄的。

用接口註冊的用戶,你去discuz用戶管理哪裏是看不到的,這個時候新增一個同名的卻發現用戶已經存在了,提示激活即可。一點激活了,再看看 $ucsynlogin ,丫的這個時候才有代碼返回了。。。

所以在第三方應用同步用戶的頁面

uc_client\model\user.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

  

discuz Ucenter第三方雙向同步登錄