UCenter 基本原理

註冊過程

        通過某個應用註冊時,應用會先調用 uc_client/client.php 中的 uc_user_register,讓 UCenter 先添加用戶。如果成功則返回該用戶id,否則返回錯誤代碼(小於0)。應用根據返回值確定是繼續在本系統中註冊還是提示錯誤信息。

        UCenter 並沒有定義同步註冊的接口,同步註冊的功能是在同步登錄的接口中實現的。

同步登錄

        通過某個應用登錄時,先調用 uc_client/client.php 中的 uc_user_login 進行驗證。驗證通過後再調用該文件中的 uc_user_synlogin,UCenter 會根據配置將各個應用的同步登錄代碼返回,剛剛執行登錄動作的應用需要把這段代碼以html的形式輸出到頁面上。

        這段代碼以引入腳本的形式來觸發對不同應用的接口的請求的,大概形式是這樣的:

<script type="text/javascript" src="http://aaa.com/api/uc.php?time=xxxxx&code=xxxxx" reload="1"></script>
<script type="text/javascript" src="http://bbb.com/api/uc.php?time=xxxxx&code=xxxxx" reload="1"></script>

        這些的代碼輸出到頁面上,會分別觸發對各個應用下 api/uc.php 的請求(這個文件的細節需要各個應用自己實現),並調用其中的 uc_note->synlogin 方法。通常在這個方法裏會判斷本應用中是否存在要求同步登錄的用戶,如果不存在則增加用戶。

        注意代碼中的 code 是實際請求參數的加密字符串,UCenter 接口負責封包和解包。

同步註銷

        與同步登錄類似,但基本無須判斷用戶是否存在,只需銷燬 session 等登錄標識就好了。

原文地址:http://www.mamicode.com/info-detail-565988.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章