国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

ucenter 通信原理

2019-11-15 01:46:35
字體:
供稿:網(wǎng)友
ucenter 通信原理

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應(yīng)用列表中開啟同步登陸的應(yīng)用進行同步登錄;即通過get方式傳遞給各個應(yīng)用目錄中api下的uc.php一些數(shù)據(jù)。

5、uc.php接收通知并處理get過來的數(shù)據(jù),并在函數(shù)synlogin(位于uc.php中)通過函數(shù)_authcode加密數(shù)據(jù)(默認(rèn)以UC_KEY作為密鑰),用函數(shù)_setcookie設(shè)置cookie。

6、各個應(yīng)用用對應(yīng)的密鑰解碼上面設(shè)置的cookie,得到用戶id等數(shù)據(jù);通過這個值來判斷用戶是否經(jīng)過其它應(yīng)用登錄過,從而讓用戶可以自動登陸。

應(yīng)用程序的logging.php ------>uc_client中的client.php------>Ucenter------>其他應(yīng)用程序中的api/uc.php。

其實Ucenter實現(xiàn)同步登陸的原理就是cookie,一個應(yīng)用登陸成功之后,向Ucenter傳遞數(shù)據(jù),讓Ucenter通知其他的應(yīng)用也設(shè)置cookie,這樣用戶在訪問其他應(yīng)用的時候通過已經(jīng)設(shè)置好的cookie實現(xiàn)自動登陸。

大致步驟 ,首先要安裝 ucenter 然后把uc_client 這個文件夾復(fù)制到自己的項目里面去 ,然后呢在配置幾個文件

client.php相當(dāng)于函數(shù)庫

uc.php相當(dāng)于回調(diào)文件

config.php 是配置文件

當(dāng)你有2個應(yīng)用都設(shè)置了同步登陸之后 當(dāng)你登陸一個應(yīng)用 然后執(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自己會在后臺把所有開啟同步登陸的應(yīng)用都給循環(huán)遍歷一遍 然后 在頁面上輸出

<script type="text/Javascript" src="http://rayibeauty.ck101.com/api/uc.php?time=1408327309&amp;code=bc6bFLa6WH343nin2GAn%2F82Y9cnCennPk1gcLGYHdQF4wsXsOSdTyqBb2Nuoxe0UJqzWMWncdx%2FfQ1GK6FS%2BqJqi2AxVG2Oq1pD9c1wZy%2BgjXs7qo4mm2sxFVHwW7JnjKGPDkVdDqtYeybkSISz7yrdb0ZFuXH2yr3Cq" reload="1"></script>

<script type="text/javascript" src="http://kibeauty.ibeauty.tw/api/uc.php?time=1408327309&amp;code=206flCqeb%2Faft%2FDFPno9Bvqsb1b0o6XTZdIByOoD7EC11vMrjzC7PaKLo0LF3tGiHwlwZkwdW5VDHq866MGulsco5nekfkL341VWp7BPabnZPNtgG7m4jZpfdx6nVP0LTJLYI%2BkebI7uLm58atk8Ex4sKBj%2FfDkjH%2F8z" reload="1"></script>

類似這種的js代碼 ,就是發(fā)送給每個開啟同步登陸的應(yīng)用, 然后每個開啟同步登陸的應(yīng)用的回調(diào)文件 uc.php 接受到后會進行解密,解密好后其實你就可以自己來寫代碼了,這個uc.php回調(diào)文件的代碼不一定非要按照他們的格式來寫 ,你也可以自己寫你自己的代碼 。

其實UC的原理很簡單 ,就是某個應(yīng)用登陸后,然后后臺輪詢發(fā)送給同步登陸的應(yīng)用的回調(diào)文件 ,回調(diào)文件接收到用戶ID之后,生成cookie或者session然后進入登陸模式。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 保亭| 乐昌市| 南靖县| 奉化市| 新干县| 那坡县| 广平县| 荥经县| 封开县| 平安县| 澳门| 仪陇县| 江安县| 方正县| 额尔古纳市| 定襄县| 交城县| 清原| 穆棱市| 乐亭县| 鄂托克前旗| 安溪县| 杂多县| 龙泉市| 中超| 新干县| 马关县| 乌苏市| 新郑市| 通渭县| 阳原县| 绵竹市| 宜城市| 大埔区| 淮阳县| 永和县| 商河县| 呈贡县| 准格尔旗| 威信县| 通江县|