本教程是以UCenter 為服務(wù)端,phpsso 與 Discuz! X2.5分別作 UCenter 的客戶端應(yīng)用。phpsso 與 Discuz! X2.5通過 UCenter 發(fā)生交互;而Phpcms v9 通過 phpsso 與 Discuz! X2.5發(fā)生交互。整合步驟如下:
第一步:完全安裝Phpcms v9 和 Discuz! X2.5的最新版
小編是將Phpcms v9安裝在根目錄,然后在根目錄新建一個(gè)bbs目錄安裝Discuz! X2.5,本教程中的路徑是以此安裝目錄為例的,站長們操作時(shí)應(yīng)該以自己實(shí)際情況更改路徑。另小編制作測(cè)試本教程時(shí)使用的是最新版的程序,所以不保證所有版本按照本教程都能整合成功,建議將程序升級(jí)到最新版。
第二步:在 UCenter 中添加“phpsso 應(yīng)用”
登錄Discuz! X2.5后臺(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í)際情況而定,注意最后不要帶斜杠。如本教程填寫為http://127.0.0.1/phpsso_server
5、通信密鑰,任意填寫64字節(jié)以內(nèi)的英文字母及數(shù)字,不過要記住,因?yàn)閜hpcms 的通信密鑰必須與此設(shè)置保持一致,否則 phpsso 將無法與 UCenter 正常通信。如本教程設(shè)置通信密鑰為:chinaz
6、應(yīng)用IP、應(yīng)用的物理路徑、查看個(gè)人資料頁面地址默認(rèn)留空即可,而應(yīng)用接口文件名稱默認(rèn)uc.php即可。
7、標(biāo)簽單條顯示模板、標(biāo)簽?zāi)0鍢?biāo)記說明兩項(xiàng)默認(rèn)留空即可。
8、是否開啟同步登錄:是。只有開啟后,兩款程序才能實(shí)現(xiàn)同步登錄。
9、完成后提交,將生成新的應(yīng)用ID。(記住這個(gè)應(yīng)用ID,在”第三步“中將用到它。)
10、進(jìn)入后臺(tái)“站長”,“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ù)你的安裝情況而定,注意最后不要帶斜杠。如本教程填寫為:http://localhost/bbs/uc_server
3、Ucenter 數(shù)據(jù)庫信息:根據(jù)自己情況填寫數(shù)據(jù)庫的信息。其中數(shù)據(jù)庫表前綴的格式為“`數(shù)據(jù)庫名`.數(shù)據(jù)庫前綴”,注意數(shù)據(jù)庫名的不是單引號(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)致無法通信。
第四步:查看通信狀態(tài)
登錄Discuz! X2.5后臺(tái),進(jìn)入“UCenter”,點(diǎn)擊“應(yīng)用管理”查看第二步中創(chuàng)建的 phpsso 應(yīng)用與 UCenter 通信是否成功。如果通信失敗,請(qǐng)檢查“第二步”與“第三步”中的各項(xiàng)參數(shù)配置是否正確。
第五步:修改 Discuz! X2.5會(huì)員登錄相關(guān)。
若不修改此處則在Phpcms v9登錄后可以同步登錄到Discuz! X2.5,但是在Discuz! X2.5登錄卻無法同步登錄到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;
第六步:整合完成
小編整合到這就木有再做任何修改了,經(jīng)測(cè)試完全實(shí)現(xiàn)了同步注冊(cè)、同步登錄、同步退出。只是因?yàn)槌绦虻脑颍趐hpcms注冊(cè)的賬號(hào)是需要在Discuz登錄一次之后才可以實(shí)現(xiàn)同步,這個(gè)是程序限制,沒有辦法解決的。另外發(fā)現(xiàn)不少站長整合后通信成功,但是出現(xiàn)注冊(cè)和登錄操作失敗的問題,請(qǐng)注意第三步中數(shù)據(jù)庫表前綴的格式。