uc client是如何與UCenter進行通訊的

2021-09-06 21:17:28 字數 1550 閱讀 5852

以使用者登入為例介紹,其它登出,改密碼,訊息,頭像,好友均類同。

從使用者***在某一應用程式的login.php,輸入使用者名稱,密碼講起。先用uc_user_login函式到uc_server驗證此使用者和密碼,如正確,則寫入session,寫入cookies,並更新應用程式會員表中的登入ip,登入時間。使用者感覺不到這個過程。

然後通過uc_user_synlogin通知uc_server 使用者***登入成功,這個過程可能使用ajax,使用者感覺不到通知過程。

uc_server收到這個訊息後,馬上命令手下,把***登入的訊息,像令牌環一樣,發給所有願意接收(後台中那個是否開啟同步登入)這個訊息的其它應用程式。其實就是帶引數訪問一下各應用程式的uc.php,使用者感覺不到這個過程。

各應用程式靠api下的uc.php來接收uc_server發來的訊息,並對uc_server言聽計從,讓幹什麼就幹什麼。現在,收到讓***使用者在你的程式中登入的命令,馬上執行。並寫本應用程式的session,並且使用p3p,寫入相同域或不同域的cookies.   使用者感覺不到這個過程。

最後所有和uc整合的程式,***均登入成功。使用者從www.test.com/bbs登入後, 跳到www.test.com/news同樣顯示登入。因為bbs 和news系統在後台均已登入。

應用程式與uc server的會話結束。

得益於uc設計的精巧過程,整個過程,使用者完全感覺不到ucenter的存在。這是整合程式歷史上的創新。

以下為supesite的uc_client和ucenter登入通訊過程的乙個例子:

1、登入入口index.php?action=login

//系統頻道

if($_sget['action'] != 'index') else //echo $scriptfile; if(file_exists($scriptfile)) }

提交登入action:batch.login.php?action=login

2、登入處理位址batch.login.php?action=login

include_once(s_root.'./uc_client/client.php');

//登入操作及其中涉及到的一些函式:

$password = $_post['password']; $username = $_post['username']; //去ucenter進行遠端登入驗證 $ucresult = uc_user_login($username, $password, $loginfield == 'uid');

如果登入成功,則查本地使用者資訊。如果有更新本地資訊,如果沒有插入新的使用者資料保持與ucenter進行同步。

然後同步其他子系統登入資訊:

$msg = $lang['login_succeed'].uc_user_synlogin($members['uid']);

function uc_user_synlogin($uid)

下面是一些程式**與注釋:

1 /**

2 * dfopen 方式取指定的模組和動作的資料

如何是對,如何是錯

有了對錯,才能分清善惡分明。論語 中孔聖人說過,己所不欲,勿施於人 這麼多年來,嘻嘻哈哈地讀過去,聽過去,再就忘卻掉。從來沒有認真地用世事比照一番,也或許是以往的自己總是在校園裡折騰,尚沒有過多的經歷可言。今年把徐公子勝治的 神遊 重新看了一遍。第119回,是非了然處,善惡自分明 法海說了同樣的道理...

SAP是如何與外界溝通的?

翻譯一篇文章吧,官方的help components of sap communication technology sap通訊互動技術 在sap的環境下,用abap 寫的經典的技術,和非abap開發的結構,二者互相通訊,雙向的通訊,這種需求十分豐富。下面的內容提供了乙個概覽,sap提供的多種不同整...

Host是如何與EC通訊的

第一種方式 遵循acpi規範完成通訊,通過lpc的62h 64h偏移 埠。此種方式適合host對ec進行讀寫操作。ec提供256位元組的可被系統讀寫的ram空間,ec的資源在該ram空間對映,通過訪問對應偏移 0x00 0xff 即可操作對應的資源。實際上就是外部ram的前256位元組。ec會將鍵盤...