實現(xiàn)ucenter通信的原理是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
10年積累的成都網(wǎng)站建設、網(wǎng)站建設經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先做網(wǎng)站設計后付款的網(wǎng)站建設流程,更有定南免費網(wǎng)站建設讓你可以放心的選擇與我們合作。1、用戶登錄discuz,通過logging.php文件中的函數(shù)uc_user_login對post過來的數(shù)據(jù)進行驗證,也就是對username和password進行驗證。
2、如果驗證成功,將調(diào)用位于uc_client下client.php文件中的函數(shù)uc_user_synlogin,在這個函數(shù)中調(diào)用 uc_api_post(‘user', ‘synlogin', array(‘uid'=>$uid))。
3、然后這個函數(shù)后向Ucenter的index.php傳遞數(shù)據(jù),index.php接受傳遞的數(shù)據(jù),獲得model為user,action為synlogin的值。
4、然后Ucenter的index.php調(diào)用control目錄下的user.php類中的onsynlogin方法,通過foreach循環(huán),以javascript的方式通知uc應用列表中開啟同步登陸的應用進行同步登錄;即通過get方式傳遞給各個應用目錄中api下的uc.php一些數(shù)據(jù)。
5、uc.php接收通知并處理get過來的數(shù)據(jù),并在函數(shù)synlogin(位于uc.php中)通過函數(shù)_authcode加密數(shù)據(jù)(默認以UC_KEY作為密鑰),用函數(shù)_setcookie設置cookie。
6、各個應用用對應的密鑰解碼上面設置的cookie,得到用戶id等數(shù)據(jù);通過這個值來判斷用戶是否經(jīng)過其它應用登錄過,從而讓用戶可以自動登陸。
應用程序的logging.php ——>uc_client中的client.php——>Ucenter——>其他應用程序中的api/uc.php。
其實Ucenter實現(xiàn)同步登陸的原理就是cookie,一個應用登陸成功之后,向Ucenter傳遞數(shù)據(jù),讓Ucenter通知其他的應用也設置cookie,這樣用戶在訪問其他應用的時候通過已經(jīng)設置好的cookie實現(xiàn)自動登陸。
大致步驟 ,首先要安裝 ucenter 然后把uc_client 這個文件夾復制到自己的項目里面去 ,然后呢在配置幾個文件
client.php相當于函數(shù)庫
uc.php相當于回調(diào)文件
config.php 是配置文件
當你有2個應用都設置了同步登陸之后 當你登陸一個應用 然后執(zhí)行
復制代碼 代碼如下:
include ‘./config.inc.php';
include ‘./uc_client/client.php';
$usernames=”kyee”;
$passwords=”123456″;
list($uid, $username, $password, $email) = uc_user_login($usernames, $passwords);
if($uid > 0) {
setcookie(“username”,$username,time()+intval(24*3600));
echo uc_user_synlogin($uid);
echo ‘登錄成功';
} elseif($uid == -1) {
echo ‘用戶不存在,或者被刪除';
} elseif($uid == -2) {
echo ‘密碼錯誤';
} else {
echo ‘未定義';
}
uc_user_synlogin() 這個函數(shù) 代表著 要同步登陸到其他所有開啟同步登陸的函數(shù) uc自己會在后臺把所有開啟同步登陸的應用都給循環(huán)遍歷一遍 然后 在頁面上輸出
復制代碼 代碼如下:
類似這種的js代碼 ,就是發(fā)送給每個開啟同步登陸的應用, 然后每個開啟同步登陸的應用的回調(diào)文件 uc.php 接受到后會進行解密,解密好后其實你就可以自己來寫代碼了,這個uc.php回調(diào)文件的代碼不一定非要按照他們的格式來寫 ,你也可以自己寫你自己的代碼 。
其實UC的原理很簡單 ,就是某個應用登陸后,然后后臺輪詢發(fā)送給同步登陸的應用的回調(diào)文件 ,回調(diào)文件接收到用戶ID之后,生成cookie或者session然后進入登陸模式。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設公司,的支持。