安全、高速、放心的軟件下載

詳解ucenter原理及第三方應用程序整合思路、方法

時間:2019-05-21 09:20:59來源:不詳人氣:0

整合了 ucenter就等于整合了整個php界的所有php程序。

一、功用:
不對,何止整合了整個php界的所有php程序,而是整合了 ucenter就等于整合了所有的asp/asp.net/php/jsp等其它語言的所有web應用程序。(因為ucenter client的api開發包,dz會推出其它語言版)

而且所有整合的程序同步登錄,同步退出,同步修改密碼。最終用戶可以通過它輕松通行在各個應用之中,無需重復登錄、注冊、退出

一個id可以出入一個站內的所有程序,如cms和bbs,也可以一個id出入www.a.com和www.b.com及www.c.com

a.com的用戶可以和b.com的用戶互發短消息pm,a.com的用戶可以和b.com的用戶加好友。

而且可以實現站內信(pm)和其它任意站的任意程序的站內信(pm)互通。

可以實現www.a.com與[url]www.b.com及[url=http://www.c.com]www.c.com[/url][/url]共享一個用戶庫,www.a.com的用戶可以給[url=http://www.b.com]www.b.com[/url]的用戶pm短信.

用戶組與discuz不對應的問題也得到解決。因為一般應用程序的用戶組是單獨的一個應用,和discuz再沒有關系,而是和ucenter有關系,而ucenter沒有用戶組的概念。


二、整合方法:
如果單說整合用戶的話,整合時應用程序的改動也非常小,原數據庫不用動原寫cookies的代碼不用動原寫數據庫session的代碼不用動,原來的程序不用怎么動,只需改動以下4個文件:

longin.php  register.php  logout.php  修改密碼文件.php  (忘記密碼.php不用動,用原來的就可以)

4個文件中加上和ucenter api通信的語句和邏輯結構。

另需要針對ucenter新增加一個文件uc.php,這個文件就是應用程序接收ucenter傳來的指令并執行的文件。而且他利用p3p技術實現反向登錄a.com或是同時反向登錄a.com/b.com/c.com的dedecms或是phpcms或是任意所有程序。


共計改4個文件,增一個文件。


如果要是整合站內信pm,好友,頭像等功能,思路與方法和整合用戶類同。

另外有一點,在不同的系統之間注冊的用戶,在第一次登錄這個從來沒有登錄過的系統時,會讓激活。借用這個激活,可以讓用戶完善在本應用程序中的資料,如企業注冊資料。資料不完善,不可以激活。

如在bbs注冊一個用戶test,第一次來到b2b的程序中,這時,并不會自動登錄,而是要求用戶激活,而test在bbs注冊時填的字段與b2b中要求的不同。這時讓用戶完善資料。第二次來就會自動登錄。


三、 uc原理:

以用戶登錄為例介紹,其它注銷,改密碼,消息,頭像,好友均類同。

1.
從用戶xxx在某一應用程序的login.php,輸入用戶名,密碼講起。
先用uc_user_login函數到uc server驗證此用戶和密碼,如正確,則寫入session,寫入cookies,并更新應用程序會員表中的登錄ip,登錄時間。用戶感覺不到這個過程。
2.
然后通過uc_user_synlogin通知uc server 用戶xxx登錄成功,這個過程可能使用ajax,用戶感覺不到通知過程。
3.
uc server收到這個消息后,馬上命令手下,把xxx登錄的消息,像令牌環一樣,發給所有愿意接收(后臺中那個是否開啟同步登錄)這個消息的其它應用程序。其實就是帶參數訪問一下各應用程序的uc.php,用戶感覺不到這個過程。
4.
各應用程序靠api下的uc.php來接收uc server發來的消息,并對uc server言聽計從,讓干什么就干什么。現在,收到讓xxx用戶在你的程序中登錄的命令,馬上執行。
并寫本應用程序的session,并且使用p3p, 寫入相同域或不同域的cookies.  用戶感覺不到這個過程。

5.最后所有和uc整合的程序,xxx均登錄成功。用戶從www.test.com/bbs登錄后, 跳到www.test.com/news同樣顯示登錄。因為bbs 和news系統在后臺均已登錄。

6.應用程序與uc server的會話結束。


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


網友評論
刮刮乐怎么做