最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ucenter通信原理分析

 更新時間:2015年01月09日 10:33:32   投稿:junjie  
這篇文章主要介紹了ucenter通信原理分析,大名鼎鼎的ucenter相信做站長的都知道,本文即來分析它的實(shí)現(xiàn)原理,需要的朋友可以參考下

1、用戶登錄discuz,通過logging.php文件中的函數(shù)uc_user_login對post過來的數(shù)據(jù)進(jìn)行驗(yàn)證,也就是對username和password進(jìn)行驗(yàn)證。

2、如果驗(yàn)證成功,將調(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)用進(jìn)行同步登錄;即通過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。

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

 

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

client.php相當(dāng)于函數(shù)庫
uc.php相當(dāng)于回調(diào)文件
config.php 是配置文件

當(dāng)你有2個應(yīng)用都設(shè)置了同步登陸之后  當(dāng)你登陸一個應(yīng)用 然后執(zhí)行

復(fù)制代碼 代碼如下:

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)遍歷一遍 然后 在頁面上輸出 
復(fù)制代碼 代碼如下:

<script type=”text/javascript” src=”http://www.lihuai.net/wp-content/uploads/sp/uc.php?time=1408327309&amp;code=bc6bFLa6WH343nin2GAn%2F82Y9cnCennPk1gcLGYHdQF4wsXsOSdTyqBb2Nuoxe0UJqzWMWncdx%2FfQ1GK6FS%2BqJqi2AxVG2Oq1pD9c1wZy%2BgjXs7qo4mm2sxFVHwW7JnjKGPDkVdDqtYeybkSISz7yrdb0ZFuXH2yr3Cq” reload=”1″></script>

<script type=”text/javascript” src=”http://www.lihuai.net/wp-content/uploads/sp/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 接受到后會進(jìn)行解密,解密好后其實(shí)你就可以自己來寫代碼了,這個uc.php回調(diào)文件的代碼不一定非要按照他們的格式來寫 ,你也可以自己寫你自己的代碼 。

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

相關(guān)文章

  • 使用PHPMailer實(shí)現(xiàn)郵件的實(shí)時發(fā)送功能

    使用PHPMailer實(shí)現(xiàn)郵件的實(shí)時發(fā)送功能

    這篇文章主要為大家詳細(xì)介紹了如何使用PHPMailer 實(shí)現(xiàn)一個接收詢盤并實(shí)時同步到指定郵箱的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-12-12
  • PHP base64+gzinflate壓縮編碼和解碼代碼

    PHP base64+gzinflate壓縮編碼和解碼代碼

    base64+gzinflate壓縮編碼(加密)過的文件通常是以 <? eval(gzinflate(base64_decode( 為頭的一個php文件。文中給出了編碼和解碼的代碼。
    2008-10-10
  • PHP SQLite類

    PHP SQLite類

    PHP SQLite類代碼。
    2009-05-05
  • php中把對象轉(zhuǎn)換為數(shù)組幾種簡單巧妙的方法

    php中把對象轉(zhuǎn)換為數(shù)組幾種簡單巧妙的方法

    在PHP中,對象是一種復(fù)雜的數(shù)據(jù)類型,它可以包含多個屬性和方法,有時候我們需要將對象轉(zhuǎn)換為數(shù)組進(jìn)行操作,比如將對象存儲到數(shù)據(jù)庫中,或者將對象轉(zhuǎn)換為JSON格式等情況,對象轉(zhuǎn)數(shù)組不能用遞歸實(shí)現(xiàn)轉(zhuǎn)換,本文幾種簡單巧妙的方法
    2023-09-09
  • php + ajax 實(shí)現(xiàn)的寫入數(shù)據(jù)庫操作簡單示例

    php + ajax 實(shí)現(xiàn)的寫入數(shù)據(jù)庫操作簡單示例

    這篇文章主要介紹了php + ajax 實(shí)現(xiàn)的寫入數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了php + ajax 寫入數(shù)據(jù)庫基本原理、操作技巧與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • PHP處理Json字符串解碼返回NULL的解決方法

    PHP處理Json字符串解碼返回NULL的解決方法

    這篇文章主要介紹了PHP處理Json字符串解碼返回NULL的解決方法,以一個過濾函數(shù)的實(shí)例展示了處理json返回錯誤的解決方法,并羅列了造成這一錯誤的常見情況,需要的朋友可以參考下
    2014-09-09
  • php實(shí)現(xiàn)可用于mysql,mssql,pg數(shù)據(jù)庫操作類

    php實(shí)現(xiàn)可用于mysql,mssql,pg數(shù)據(jù)庫操作類

    這篇文章主要介紹了php實(shí)現(xiàn)可用于mysql,mssql,pg數(shù)據(jù)庫操作類,以類的形式封裝了對mysql,mssql,pg三種數(shù)據(jù)庫的操作,非常具有實(shí)用價值,需要的朋友可以參考下
    2014-12-12
  • 提高PHP性能的編碼技巧以及性能優(yōu)化詳細(xì)解析

    提高PHP性能的編碼技巧以及性能優(yōu)化詳細(xì)解析

    include文件時盡量使用絕對路徑,因?yàn)樗苊饬薖HP去include_path里查找文件的速度,解析操作系統(tǒng)路徑所需的時間會更少
    2013-08-08
  • PHP實(shí)現(xiàn)的回溯算法示例

    PHP實(shí)現(xiàn)的回溯算法示例

    這篇文章主要介紹了PHP實(shí)現(xiàn)的回溯算法,結(jié)合具體實(shí)例形式分析了php回溯算法的實(shí)現(xiàn)步驟與使用方法,涉及字符串與數(shù)組的遞歸、遍歷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • PHP行為設(shè)計(jì)模式之策略模式

    PHP行為設(shè)計(jì)模式之策略模式

    這篇文章主要介紹了PHP行為設(shè)計(jì)模式之策略模式,策略模式(Strategy pattern)是行為類模式中的一個類型。行為類模式用來說明一個應(yīng)用是如何運(yùn)作的
    2023-04-04

最新評論

波密县| 墨竹工卡县| 乌苏市| 花垣县| 唐海县| 明溪县| 门头沟区| 台前县| 定襄县| 自治县| 嵊泗县| 澄城县| 韶山市| 襄垣县| 延庆县| 重庆市| 靖远县| 华坪县| 岑溪市| 绥宁县| 灯塔市| 北流市| 南陵县| 新沂市| 新巴尔虎右旗| 积石山| 乡宁县| 沂源县| 开江县| 桓台县| 红原县| 马关县| 南康市| 常德市| 大方县| 凤冈县| 阿荣旗| 桓仁| 巴东县| 蒙阴县| 封开县|