之前簡單的寫過一篇的使用者註冊整合ucenter的文章,因為寫的很簡潔,很多童鞋都看的不是很明白,也收到了很多童鞋的問題郵件。前幾天因為公司的幾個 網站需要做同步登入功能,因此就用到了ucenter作為中間橋樑。現在很多開源的cms系統,部落格系統,論壇系統都內建整合ucenter的外掛程式,但是 如果是自己開發的網站需要和discuz或者ecshop同步登入的話,就需要把自己的完網站整合上ucenter了。
其實整合ucenter也沒有傳說中的那麼困難,今天我就詳細的介紹下如何把自己的網站整合上ucenter,實現多網站同步登入,同步退出的方法。
首 先你需要安裝一個ucenter,ucenter可以去康盛的官方網站下載最新版本。ucenter他所起到銜接各個網站會員註冊,登入作 用,ucenter的會員表中包含了你需要整合的各個網站的所有會員,使用者不管在那個網站註冊,程式先是把會員資訊添加到了ucenter的會員表中,然 後再添加到當前網站的會員表裡面,而在登入的時候,程式是先去查詢ucenter會員表中是否存在該使用者,如果存在查詢當前網站會員表中是否存在,如果不 存在就證明該使用者是通過另外一個網站註冊的並且是在該網站第一次登入,就需要把該會員添加到當前網站的會員表中。上面所說的就是ucenter的會員整合 機制了。
ucenter安裝完之後,這時就需要去ucenter後台添加應用了,首先登入到ucenter的後台,
點擊應用管理裡面的添加應用,把你需要整合的網站資訊添加進去。應用程式名稱,應用的主URL,通訊密鑰,應用類型,應用介面檔案名稱是必填項目,點擊提交 後,下面就會產生相關的應用的UCenter 配置資訊,這個配置資訊等會兒會用到。ucenter的應用配置好後,就需要把整合ucenter需要用到的檔案放你網站的根目錄下面,檔案包括:
A:api檔案(你去看看像discuz啊,supesite啊。uchome啊他們裡面都有的),
B:還有一個inlude檔案夾(裡面只需要一個檔案db_mysql.class.php:這個是裡面連結資料庫操作的),
C:還有一個config.inc.php(而我自己的設定檔就是這個,所以我改了個名字叫config.php,這裡改之後,就需要吧api/uc.php裡面的所有config.inc.php替換成config.php了),
D:uc_client檔案(在你下載的ucenter壓縮包裡面的這個檔案拷貝過來就ok啦),
文 件夾放好之後,就是配置config檔案了,把上面在ucenter後天添加應用的時候產生的“應用的UCenter配置資訊”複製到 config.inc.php中,然後在重新整理ucenter背景應用列表,看下他的通訊狀況,如果通訊成功就證明該網站已經整合成功了。
現在,ucenter和網站的整合就已經結束了,但是還沒有實現同步登入同步退出的功能,如何?網站之前的同步登入同步退出呢?這就需要去修改某些檔案 了,找到api下面的uc.php,這個就是實現同步登入同步退出操作的函數檔案,找到synlogin這個function,這個function就是 同步登入的函數的,這個函數裡面你可以進行資料庫操作,儲存你網站中登入之後的cookie或者session。這裡只是完成了別的網站同步登入到你的網 站,那麼如果讓你的網站也同步登入到其他的網站呢?這就需要去修改序了,這個代碼在ucenter的介面文檔裡面有登入和註冊的函數,如登入函數是 uc_user_login($str_user_name, $str_user_pwd);大家可以自己看看,需要注意的是要實現同步登入,他是js來實現登入的,ucenter程式是把同步登入網站的代碼產生了 js代碼,$ucsynlogin = uc_user_synlogin($int_id);這就是同步登入的代碼,你可以列印下這個代碼,你就可以看到,你ucenter有幾個應用,他就會 產生多少個js代碼,而這些代碼就是去通知其他網站同步登入的,所以這些代碼需要在頁面上面執行才能實現同步登入功能。代碼修改完了之後,你需要把 ucenter後台應用裡面的同步登入和同步退出選擇上,
相同,同步退出和同步登入也一樣的是想。
到此為止,網站會員整合ucenter,實現多網站同步登入方法的講解就結束了。大家可以結合ucenter的相應的整合文檔和執行個體測試一下。
轉自http://www.chinaz.com/web/2011/0428/176110.shtml