1.使用新的uc_client文件,打開(kāi)phpsso_server\api\ 目錄修改原uc_client目錄名稱為uc_client_backup,然后將ucenter下面文件uc_client覆蓋到該目錄下。
第二步:
1.登錄Discuz! X31后臺(tái),進(jìn)入“UCenter”,點(diǎn)擊“應(yīng)用管理”后點(diǎn)擊“添加新應(yīng)用”進(jìn)入應(yīng)用添加界面,設(shè)置如下:

1、安裝方式選擇“自定義安裝”
2、應(yīng)用類型選擇“其他”
3、應(yīng)用名稱填“phpsso”
4、應(yīng)用的主 URL, 即phpsso_server的路徑,視實(shí)際情況而定,注意最后不要帶斜杠。如本教程填寫(xiě)為http://127.0.0.1/phpsso_server
5、通信密鑰,任意填寫(xiě)64字節(jié)以內(nèi)的英文字母及數(shù)字,不過(guò)要記住,因?yàn)閜hpcms 的通信密鑰必須與此設(shè)置保持一致,否則 phpsso 將無(wú)法與 UCenter 正常通信。如本教程設(shè)置通信密鑰為:chinaz
6、應(yīng)用IP、應(yīng)用的物理路徑、查看個(gè)人資料頁(yè)面地址默認(rèn)留空即可,而應(yīng)用接口文件名稱默認(rèn)uc.php即可。
7、標(biāo)簽單條顯示模板、標(biāo)簽?zāi)0鍢?biāo)記說(shuō)明兩項(xiàng)默認(rèn)留空即可。
8、是否開(kāi)啟同步登錄:是。只有開(kāi)啟后,兩款程序才能實(shí)現(xiàn)同步登錄。
9、完成后提交,將生成新的應(yīng)用ID。(記住這個(gè)應(yīng)用ID,在”第三步“中將用到它。)
10、進(jìn)入后臺(tái)“站長(zhǎng)”,“UCenter 設(shè)置”選項(xiàng)。"是否允許直接激活"一項(xiàng),選擇“是”。
下面去Phpcms v9中配置phpsso。
第三步:配置phpsso
登錄Phpcms v9后臺(tái),進(jìn)入“phpsso”,點(diǎn)擊“系統(tǒng)設(shè)置”,進(jìn)入“UCenter配置”設(shè)置界面,設(shè)置如下:

1、是否啟用:是
2、Ucenter api 地址,即uc_server的路徑,根據(jù)你的安裝情況而定,注意最后不要帶斜杠。如本教程填寫(xiě)為:http://localhost/bbs/uc_server
3、Ucenter 數(shù)據(jù)庫(kù)信息:根據(jù)自己情況填寫(xiě)數(shù)據(jù)庫(kù)的信息。其中數(shù)據(jù)庫(kù)表前綴的格式為“`數(shù)據(jù)庫(kù)名`.數(shù)據(jù)庫(kù)前綴”,注意數(shù)據(jù)庫(kù)名的不是單引號(hào)。
4、應(yīng)用id(APP ID),即第二步創(chuàng)建的 phpsso 應(yīng)用時(shí)自動(dòng)生成的應(yīng)用ID。
5、Ucenter 通信密鑰,即第二步中設(shè)置的“通信密鑰”,這兩個(gè)值一定要確保一致,否則會(huì)導(dǎo)致無(wú)法通信。
第四步:查看通信狀態(tài)
登錄Discuz! X31后臺(tái),進(jìn)入“UCenter”,點(diǎn)擊“應(yīng)用管理”查看第二步中創(chuàng)建的 phpsso 應(yīng)用與 UCenter 通信是否成功。如果 通信失敗,請(qǐng)檢查“第二步”與“第三步”中的各項(xiàng)參數(shù)配置是否正確。

第五步:修改 Discuz! X31會(huì)員登錄相關(guān)。
若不修改此處則在Phpcms v9登錄后可以同步登錄到Discuz! X31,但是在Discuz! X31登錄卻無(wú)法同步登錄到Phpcms v9。修改步驟如下:
1、找到discuz目錄下 template\default\member\login.htm,刪除(如一樣可不做處理)
onsubmit="{if $this->setting['pwdsafety']}pwmd5('password3_$loginhash');{/if}pwdclear = 1;ajaxpost('loginform_$loginhash', 'returnmessage_$loginhash', 'returnmessage_$loginhash', 'onerror');return false;"
2、找到discuz目錄下 template\default\member\login_s imple.htm ,刪除(如一樣可不做處理)
onsubmit="{if $_G['setting']['pwdsafety']}pwmd5('ls_password');{/if}return lsSubmit();"
3、找到discuz目錄下 /source/function/function_message.php ,查找(如一樣可不做處理)
$param['header'] = true;
替換為
$param['header'] = false;
第六步:
1.(注冊(cè)提示錯(cuò)誤:“驗(yàn)證碼錯(cuò)誤”)修改如下:
文件位置:/phpcms/modules/member/index.php

2.(phpcmsv9登陸,“discuz不同步登陸錯(cuò)誤”)修改如下:
文件位置:/phpsso_server/api/uc_client/client.php

第七步:
找到discuz目錄網(wǎng)站:
分析其主要原因是phpsso與ucenter通信成功后,XXX_ucenter_member表中的用戶已經(jīng)同步成功但是在XXX_common_member中并沒(méi)有此用戶,所以只要在xxx_common_member中插入此用戶就可以了,所以修改discuz/api/uc.php下找到function synlogin($get, $post)整段,修改為下面的內(nèi)容:
function synlogin($get, $post) {
global $_G;
if(!API_SYNLOGIN) {
return API_RETURN_FORBIDDEN;
}
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
$cookietime = 31536000;
$uid = intval($get['uid']);
$query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");
if ($member = DB::fetch($query))
{
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}else
{
$username = $get['username'];
$query = DB::query("SELECT uid, username, password, email FROM ".DB::table('ucenter_members')." WHERE username='$username'");
$member = DB::fetch($query);
$password = $member['password'];
$email = $member['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$userdata = array(
'uid'=>$uid,
'username'=>$username,
'password'=>$password,
'email'=>$email,
'adminid'=>0,
'groupid'=>10,
'regdate'=>$time,
'credits'=>0,
'timeoffset'=>9999
);
DB::insert('common_member', $userdata);
$status_data = array(
'uid' => $uid,
'regip' => $ip,
'lastip' => $ip,
'lastvisit' => $time,
'lastactivity' => $time,
'lastpost' => 0,
'lastsendmail' => 0
);
DB::insert('common_member_status', $status_data);
DB::insert('common_member_profile', array('uid' => $uid));
DB::insert('common_member_field_forum', array('uid' => $uid));
DB::insert('common_member_field_home', array('uid' => $uid));
DB::insert('common_member_count', array('uid' => $uid));
DB::query('UPDATE '.DB::table('common_setting')." SET svalue='$username' WHERE skey='lastmember'");
$query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");
if ($member = DB::fetch($query))
{
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
}
}
}
至此完成。
上圖為證:

注冊(cè)也可以同步登陸。
本文出自正穗軟件科技有限公司,更多關(guān)于廣州網(wǎng)站建設(shè)、廣州網(wǎng)站推廣詳情請(qǐng)關(guān)注:
本站所有相關(guān)知識(shí)僅供大家參考、學(xué)習(xí)之用,本文來(lái)源于互聯(lián)網(wǎng),其版權(quán)均歸原作者及網(wǎng)站所有,如無(wú)意侵犯您的權(quán)利,請(qǐng)與小編聯(lián)系,我們將會(huì)在第一時(shí)間核實(shí), 如情況屬實(shí)會(huì)在3個(gè)工作日內(nèi)刪除;如您有優(yōu)秀作品,也歡迎聯(lián)系小編在我們網(wǎng)站投稿!http://www.jonasericson.com/聯(lián)系方式: [email protected]