《PHP編程:ucenter通信原理分析》要點:
本文介紹了PHP編程:ucenter通信原理分析,希望對您有用。如果有疑問,可以聯系我們。
1、用戶登錄discuz,通過logging.php文件中的函數uc_user_login對post過來的數據進行驗證,也便是對username和password進行驗證.PHP教程
2、如果驗證成功,將調用位于uc_client下client.php文件中的函數uc_user_synlogin,在這個函數中調用 uc_api_post(‘user', ‘synlogin', array(‘uid'=>$uid)).PHP教程
3、然后這個函數后向Ucenter的index.php傳遞數據,index.php接受傳遞的數據,獲得model為user,action為synlogin的值.PHP教程
4、然后Ucenter的index.php調用control目錄下的user.php類中的onsynlogin辦法,通過foreach循環,以javascript的方式通知uc應用列表中開啟同步登陸的應用進行同步登錄;即通過get方式傳遞給各個應用目錄中api下的uc.php一些數據.PHP教程
5、uc.php接收通知并處理get過來的數據,并在函數synlogin(位于uc.php中)通過函數_authcode加密數據(默認以UC_KEY作為密鑰),用函數_setcookie設置cookie.PHP教程
6、各個應用用對應的密鑰解碼上面設置的cookie,得到用戶id等數據;通過這個值來判斷用戶是否經過其它應用登錄過,從而讓用戶可以自動登陸.PHP教程
應用程序的logging.php ――>uc_client中的client.php――>Ucenter――>其他應用程序中的api/uc.php.PHP教程
其實Ucenter實現同步登陸的原理就是cookie,一個應用登陸成功之后,向Ucenter傳遞數據,讓Ucenter通知其他的應用也設置cookie,這樣用戶在拜訪其他應用的時候通過已經設置好的cookie實現自動登陸.PHP教程
?PHP教程
大致步驟 ,首先要安裝 ucenter 然后把uc_client 這個文件夾復制到本身的項目里面去 ,然后呢在配置幾個文件PHP教程
client.php相當于函數庫
uc.php相當于回調文件
config.php 是配置文件PHP教程
當你有2個應用都設置了同步登陸之后? 當你登陸一個應用 然后執行
PHP教程
setcookie(“username”,$username,time()+intval(24*3600));
echo uc_user_synlogin($uid);
echo ‘登錄成功';
} elseif($uid == -1) {
echo ‘用戶不存在,或者被刪除';
} elseif($uid == -2) {
echo ‘暗碼錯誤';
} else {
echo ‘未定義';
}
PHP教程
<script type=”text/javascript” src=”http://www.lihuai.net/wp-content/uploads/sp/uc.php?time=1408327309&code=206flCqeb%2Faft%2FDFPno9Bvqsb1b0o6XTZdIByOoD7EC11vMrjzC7PaKLo0LF3tGiHwlwZkwdW5VDHq866MGulsco5nekfkL341VWp7BPabnZPNtgG7m4jZpfdx6nVP0LTJLYI%2BkebI7uLm58atk8Ex4sKBj%2FfDkjH%2F8z” reload=”1″></script>
PHP教程
類似這種的js代碼 ,就是發送給每個開啟同步登陸的應用, 然后每個開啟同步登陸的應用的回調文件 uc.php 接受到后會進行解密,解密好后其實你就可以自己來寫代碼了,這個uc.php回調文件的代碼不一定非要依照他們的格式來寫 ,你也可以自己寫你自己的代碼 .PHP教程
其實UC的原理很簡單 ,便是某個應用登陸后,然后后臺輪詢發送給同步登陸的應用的回調文件 ,回調文件接收到用戶ID之后,生成cookie或者session然后進入登陸模式.PHP教程
《PHP編程:ucenter通信原理分析》是否對您有啟發,歡迎查看更多與《PHP編程:ucenter通信原理分析》相關教程,學精學透。維易PHP學院為您提供精彩教程。