設(shè)置UCenter下各應(yīng)用同步登錄
Comsenz 同時發(fā)布了 UCenter、UCenter Home、Discuz!、SupeV、ECShop、SupeSite 等多個產(chǎn)品,各個產(chǎn)品可以通過 UCenter 實現(xiàn)會員信息的整合,通過簡單的設(shè)置也可以達到同步登錄退出。
設(shè)置步驟如下:
一、首先,登錄 UCenter 后臺,應(yīng)用管理,確保該應(yīng)用與 UCenter 通信成功。如果通信不成功,可以參考以下步驟檢查下:
1、在 UCenter 后臺,應(yīng)用管理,編輯,接口 URL,檢查這個地址是否正確。
2、應(yīng)用 IP:這里正常情況下留空即可。如果由于域名解析問題導(dǎo)致 UCenter 與該應(yīng)用通信失敗,請嘗試設(shè)置為該應(yīng)用所在服務(wù)器的 IP 地址。
3、通信密鑰:這里的通信密鑰要和各個應(yīng)用中 config 配置文件里的 define('UC_KEY', ) 中設(shè)置的數(shù)字對應(yīng)。
4、檢查 UCenter 后臺,應(yīng)用管理,編輯,ID 值是不是和該應(yīng)用 config 配置文件里的 define('UC_APPID', ) 的值相同。
二、登錄 UCenter 后臺,應(yīng)用管理,編輯各個應(yīng)用,確保“是否開啟同步登錄”,選擇的“是”。見下圖:
三、檢查各個應(yīng)用 config 文件中的 cookie,不要設(shè)置為一樣的。
四、確保各個應(yīng)用中 config 文件設(shè)置的參數(shù)(通信密鑰/接口 URL)要和 UCenter 后臺應(yīng)用管理中各個參數(shù)設(shè)置相同。
如果不能同步登錄,請參考下面的方法進行排查。
1、檢查 UCenter 后臺各應(yīng)用的通信是否成功。
2、檢查確定 UCenter 里各個應(yīng)用中的“是否開啟同步登錄:”需選擇“是”。
3、檢查各應(yīng)用的 cookiepre,不能設(shè)置為一樣的,也就是每個應(yīng)用的 cookiepre 值都要設(shè)置為不同的。
4、請檢查下 UCenter Home 的 config.php 文件里面的 UCenter 參數(shù)設(shè)置是否正確,導(dǎo)致 UCenter Home 連接不上 UCenter。
可以登陸 UCenter 后臺 => 應(yīng)用管理 => 編輯 UCenter Home 這個應(yīng)用,將里面最下面應(yīng)用的 UCenter 配置信息復(fù)制一份,將 UCenter Home 的 config.php 里面的對應(yīng)信息替換下。
5、其它應(yīng)用同理,也是檢查應(yīng)用的配置文件里 UCenter 參數(shù)設(shè)置是否正確,操作步驟同上。
6、對于編碼為 utf8 的用戶,注意檢查自己的 config 文件有沒有修改過編碼,默認的編碼是 ansi 編碼,而不是 utf8 編碼。如果修改過 config 文件有 utf8 編碼,則會出現(xiàn) UCenter 通信不成功導(dǎo)致的無法登錄情況。
7、如果用戶在論壇或其他應(yīng)用注冊,新用戶第一次登陸 UCenter Home 或其他應(yīng)用時,需要手動登陸一次,以后可以同步登陸。
8、Discuz!7.0.0 無法和其他應(yīng)用同步登陸
打開 global.func.php,找到
$show_message = str_replace("'", "\'", strip_tags($show_message));
替換為:
$show_message = str_replace("'", "\'", $show_message);
如果還不行
Discuz!7.0.0 正式版在頭部不能顯示空間的連接,前提是同一個 UCenter 下安裝了UCenter Home 了。
打開 ./include/cache.func.php
找到
if(@include(DISCUZ_ROOT.'./uc_client/data/cache/apps.php') && is_array($_CACHE['apps'])) {
替換為
@include(DISCUZ_ROOT.'./uc_client/data/cache/apps.php');
if(is_array($_CACHE['apps'])) {
9、到應(yīng)用的配置文件中,修改 'UC_IP' 地址為你服務(wù)器的 IP 地址。
以前的是
define('UC_IP', '127.0.0.1);
改成
define('UC_IP', '69.89.31.213');
修改之后一切正常,可以同步。
解釋:127.0.0.1 是因為有的服務(wù)器不支持自己訪問自己造成的,很多虛擬主機都有這問題。
10、如果在論壇后臺 => 全局 => 注冊與訪問 => 設(shè)置邀請注冊 和 Email 驗證注冊的話 ,在其他應(yīng)用注冊的用戶,在那個應(yīng)用登陸后訪問論壇會處于未登陸狀態(tài),建議先關(guān)閉這個設(shè)置。