趙雄飛uc講解20110216

直接copy來的 , 屬於對話形式 , 我也是學習用的 , 保持了原始格式 , 不喜勿噴 :

首先講解UCenter的基本概念。

大家不要插話,我開始了啊。呵呵

uc 是comsnez公司退出的一個用戶整合方案

包括 server、client兩個端。

server端負責接受client端發起的請求,並給出相應的處理。

client端是 封裝了一些server提供的接口的函數。通過這些函數來調用server提供的接口。

具體client封裝了那些接口,以及接口的使用方法,大家可以參考uc下載包裏的readme,有詳細的解釋。

client端和server的通信全部通過這些client.php封裝的函數來完成。

以上內容大家有不明白的嗎?下面是提問時間。

這只是基礎的一個概念,估計大家都能明白。

一般整合uc的時候都需要client.php和uc.php這兩個東西。client.php上面說過了。是主動想server端發起請求的接口封裝函數。

那麼uc.php剛好相反,這裏uc.php他是最爲一個server的,他接受uc_server發起的請求和用戶瀏覽器直接發起的請求。

這樣對於整合uc來說就實現了server和client雙向通信。而不是單一的client發起,server接受。

那麼uc.php在什麼情況下會被請求到,或者說他主要負責處理什麼事情呢?

打開打開dz6.1以及以上的版本的uc.php(api/uc.php)可以看到下面有很多處理方法。逐一看一下就明白了。我大概講一下。

uc.php會接受uc_server發給他的通知。這些通知大概有用戶改名、用戶改密碼、用戶被刪除、還有一些其他的。

另外一個最重要的是uc.php會接收用戶瀏覽器發起的同步登錄、退出請求。

uc.php在接收到這個請求的時候會把當前瀏覽器設置爲登錄或者退出狀態。這就是同步登錄和退出最重要的一個環節。

那麼瀏覽器是在什麼情況下會發起這個同步登錄的請求呢?
打開uc的readme文檔。我麼可以找到一個同步登錄的接口。這個接口會在用戶登錄的時候,帳號密碼驗證成功以後被調用。

重點來了:調用這個接口並不能理解就實現其他應用的同步登錄。一定要明白這一點。web上的應用登錄狀態是相對瀏覽器來說的。服務器端的請求是無法讓瀏覽器處於登錄狀態的。

這個時候請求同步登錄接口得到的返回是一些javascript請求的串。

類似於這樣的<scrip type="text/javascript" src="http://其他應用地址/api/uc.php?加密串"></script>  程序在得到這些字符串的時候要把他們輸出到當前用戶的瀏覽器上。這些html代碼被輸出到用戶瀏覽器上瀏覽器會發起請求,到src的地址。

這個地址就是我上面說的uc.php的地址。

比如你的uc下有A、B兩個應用。那麼在A登陸的時候。A在判斷用戶身份合法的時候,就會去調用uc的同步登錄接口從而得到一個同步登錄串,記住了。這個時候得到的這個同步登錄串是B應用的。 
此時A需要先把當前用戶設置爲已經登錄狀態。之後輸出那段B的同步登錄js串。

用戶的瀏覽器就會向B發起同步登錄請求。  
B的uc.php接收到這個請求後同樣會把當前用戶瀏覽器在B應用下設置爲一登錄狀態。這樣就實現了用戶在A登錄,在B也同時處於了登錄狀態。

同理如果還有C、D……等應用也是一樣的原理。只是A在調用同步登錄接口的時候就不是僅僅是得到B的同步登錄串,他會同時得到B、C、D……的登錄串。

這些js串在瀏覽器上逐個被執行了。其他的應用也就都登陸上去了。

同步退出和這個基本上是完全一樣的原理,只是調用的同步退出的接口。

uc.php那裏相應的也到了處理退出的代碼。

uc的整合原理上面基本上就完全講完了。

大家可以提問了。

僅僅對原理不明白的。

原理明白了,下面我會講一個實戰的例子。


問題:

擔凳仔霸頭位<[email protected]> 10:19:46  就是調用完同步的接後以後,就需要到UC.PHP文件中處理  擔凳仔霸頭位<[email protected]> 10:19:48  是不是  
京-PHP-趙雄飛(13740080) 10:20:08  調用晚同步接口得到的是js串。  京-PHP-趙雄飛(13740080) 10:20:33  這個js串在輸出到用戶瀏覽器上的時候,瀏覽器會執行js,發起uc.php的請求。

蜘蛛(85466188) 10:20:44 
逐個被執行

這裏會不會有因網絡慢執行不成功或者成功部分

上海-沉默[php](448932460) 10:20:58 
可不可以不傳密碼 傳一個用戶名和一個加密的字符串實現同步登陸
京-PHP-趙雄飛(13740080) 10:21:22 
蜘蛛(85466188)  10:20:44
逐個被執行

這裏會不會有因網絡慢執行不成功或者成功部分

有這個可能行。
蜘蛛(85466188) 10:21:56 
那這個情況下是隻有A能登陸的情況會出現?
京-PHP-趙雄飛(13740080) 10:22:30 
性。或者用戶快速的離開也有可能無法執行。
口明明口(328001026) 10:22:42 
網上很多人,說這個JS串可能被僞造不安全,這個說法是否正確啊
蜘蛛(85466188) 10:22:42 
是用ajax分開逐個應用分別單獨執行的?
京-PHP-趙雄飛(13740080) 10:22:56 
上海-沉默[php](448932460)  10:20:58
可不可以不傳密碼 傳一個用戶名和一個加密的字符串實現同步登陸

你那個屬於山寨的方法。我這裏只講原生的uc是怎麼做的。
京-PHP-趙雄飛(13740080) 10:23:19 
口明明口(328001026)  10:22:42
網上很多人,說這個JS串可能被僞造不安全,這個說法是否正確啊

不可能被僞造,是很強的加密方式加密過的。
京-PHP-趙雄飛(13740080) 10:23:30 
如果能僞造,那麼可以去僞造更有價值的東西了。
京-PHP-趙雄飛(13740080) 10:23:52 
蜘蛛(85466188)  10:22:42
是用ajax分開逐個應用分別單獨執行的?

不是。得到的是html代碼,直接輸出到瀏覽器即可。
口明明口(328001026) 10:24:06 
我的意思是,人家獲取了那段JS串,以後就用這個串去登陸
晉PHP/ASP-YinG(33098184) 10:24:07 
要是應用多的話,瀏覽器訪問各個應用會很慢吧
長沙-滄海一粟<xiezhilong167@163.com> 10:24:29 
僞造是可能的,沒有絕對安全的系統
長沙-滄海一粟<xiezhilong167@163.com> 10:25:04 
js串是在本地執行,怎麼去獲取呢?
晉PHP/ASP-YinG(33098184) 10:25:14 
京-PHP-趙雄飛(13740080)  10:23:52
蜘蛛(85466188)  10:22:42
是用ajax分開逐個應用分別單獨執行的?

不是。得到的是html代碼,直接輸出到瀏覽器即可。

這個應該也可以用AJAX實現吧
柱輝<dwin408@qq.com> 10:25:32 
僞造情況不在討論範圍
京-PHP-趙雄飛(13740080) 10:25:47 
口明明口(328001026)  10:24:06
我的意思是,人家獲取了那段JS串,以後就用這個串去登陸

有個有效期。
京-PHP-趙雄飛(13740080) 10:26:19 
這個應該也可以用AJAX實現吧

那你需要從html代碼中正則出src的地址。
京-PHP-趙雄飛(13740080) 10:26:42 
晉PHP/ASP-YinG(33098184)  10:24:07
要是應用多的話,瀏覽器訪問各個應用會很慢吧

會的。
擔凳仔霸頭位<panguohui@vip.qq.com> 10:26:51 
其實他的意思是 同步登陸的接口生成一個 uc.php地址,然後用JS調用這個 uc.php地址 ,就等於調用了uc.php文件。然後uc.php 的文件處理這個登陸串
京-PHP-趙雄飛(13740080) 10:27:11 
畢竟是一次請求。但是就像你的頁面輸出3個圖片和5個圖片的區別一樣。只要你服務器沒掛掉,其實是很快的。
粵-JSP-lucene(7290204) 10:27:17 
多個應用同步登陸的時候是按照在uc裏面添加應用的順序來定的嗎,也就是按照應用id的嗎?
京-PHP-趙雄飛(13740080) 10:27:18 
有掛掉的會比較卡。
京-PHP-趙雄飛(13740080) 10:27:34 
擔凳仔霸頭位<panguohui@vip.qq.com>  10:26:51
其實他的意思是 同步登陸的接口生成一個 uc.php地址,然後用JS調用這個 uc.php地址 ,就等於調用了uc.php文件。然後uc.php 的文件處理這個登陸串

總結的很到位。
京-PHP-趙雄飛(13740080) 10:27:57 
粵-JSP-lucene(7290204)  10:27:17
多個應用同步登陸的時候是按照在uc裏面添加應用的順序來定的嗎,也就是按照應用id的嗎?

按照uc後臺的順序。
  新人京-PHP-雪滅報到啦,大家快來迎接吧! 10:28:45
初來乍到,快跟大家介紹介紹自己吧:)我的興趣愛好:我喜歡的音樂:我推薦的電影:我的交友宣言:[圖片](請...
我要歡迎 | 送鮮花/笑臉
晉PHP/ASP-YinG(33098184) 10:28:52 
其實就是用戶使用GET方式挨個登錄各個應用,只是用戶看不到這個過程
蜘蛛(85466188) 10:29:16 
每個應用一次請求?
柱輝<dwin408@qq.com> 10:29:19 
嗯
京-PHP-趙雄飛(13740080) 10:29:29 
晉PHP/ASP-YinG(33098184)  10:28:52
其實就是用戶使用GET方式挨個登錄各個應用,只是用戶看不到這個過程

總結的很到位。
口明明口(328001026) 10:29:46 
ucenter那個郵件推送功能,有可能實現嗎
京-PHP-趙雄飛(13740080) 10:30:01 
給大家十分鐘時間自由討論。10分鐘後我來講實戰。
京-PHP-趙雄飛(13740080) 10:30:07 
那就更簡單了。
京-PHP-趙雄飛(13740080) 10:30:15 
口明明口(328001026)  10:29:46
ucenter那個郵件推送功能,有可能實現嗎

有。
京-PHP-趙雄飛(13740080) 10:30:23 
但是目前還沒見誰用這個東西。
柱輝<dwin408@qq.com> 10:30:28 
當前應用狀態改變後,JS挨個通知其他應用
口明明口(328001026) 10:30:56 
ucenter那郵件功能,我以調用,Ucenter就掛掉了,變的很慢慢,幾乎打不開
柱輝<dwin408@qq.com> 10:30:55 
執行相應的操作
讓我想想(375110054) 10:31:15 
開始實踐吧
口明明口(328001026) 10:31:36 
必須到數據庫清除那郵件推送隊列表,才能正常
京-PHP-趙雄飛(13740080) 10:32:03 
口明明口(328001026)  10:30:56
ucenter那郵件功能,我以調用,Ucenter就掛掉了,變的很慢慢,幾乎打不開

那就是ucenter郵件配置的不正確。導致發郵件巨慢導致的。
京-PHP-趙雄飛(13740080) 10:32:26 
發郵件又是計劃任務的方式被觸發的所以會導致uc的接口都巨慢。
柱輝<dwin408@qq.com> 10:32:35 
ucenter那郵件功能 是要JS促發的吧~~~
京-PHP-趙雄飛(13740080) 10:32:58 
柱輝<dwin408@qq.com>  10:30:28
當前應用狀態改變後,JS挨個通知其他應用

這個是uc_server端在服務器端直接發起請求給uc.php的。
京-PHP-趙雄飛(13740080) 10:33:22 
柱輝<dwin408@qq.com>  10:32:35
ucenter那郵件功能 是要JS促發的吧~~~

不是,每次請求uc_server的時候觸發。
擔凳仔霸頭位<panguohui@vip.qq.com> 10:33:49 
過程應該 是 應用程序->uc_client->uc_server->uc.php


柱輝<dwin408@qq.com> 10:34:13 

京-PHP-趙雄飛(13740080) 10:34:36 
過程應該 是 應用程序->uc_client->uc_server->uc.php

uc的通知是這個流程。
京-PHP-趙雄飛(13740080) 10:36:11 
下面開始講具體我們拿到一個應用要如何整合到ucenter上,具體操作的步驟是哪些。
京-PHP-趙雄飛(13740080) 10:36:32 
我們先以php語言爲例。
京-PHP-趙雄飛(13740080) 10:37:01 
一、首先我們要到uc的後臺去添加一個應用。自定義方式的添加。
京-PHP-趙雄飛(13740080) 10:37:51 
添加完了之後我們就會可以在應用列表看到這個應用。但此時是通信失敗的。因爲壓根就沒有這個東西。只是讓他先在uc的應用數據表中產生一條記錄。
京-PHP-趙雄飛(13740080) 10:38:25 
這個時候,我們點擊該應用的編輯。進去後在頁尾可以看到一個文本框給出了這個一段PHP代碼。
京-PHP-趙雄飛(13740080) 10:39:05 
copy這個代碼,把他保存到你的應用的目錄下。
比如dzx把這個放在了./config/config_ucenter.php
京-PHP-趙雄飛(13740080) 10:39:37 
當然你可以放在任何一個目錄,任何一個文件名稱,這個都是沒有強制約束的。根據你自己的結構來看。
京-PHP-趙雄飛(13740080) 10:40:06 
這個配置文件裏包含了一些重要的信息,比如該應用在uc給分配的id、密鑰等等。
京-PHP-趙雄飛(13740080) 10:40:29 
到此爲止,第一步重要的工作我們已經完成了。
北京-潘立光(516487837) 10:41:50 
 我把網上的dzx 和數據庫下到本地以後 就是登錄不了是 是不是和uc的配置有關係
北京-PHP.NET(328150280) 10:42:06 
不要插嘴
京-PHP-趙雄飛(13740080) 10:42:10 
二、到comsenz下載uc的安裝包,在裏面找到uc_client這個包。copy到你的程序根目錄下(也可以是其他目錄,一般在根目錄即可,方便升級)。
京-PHP-趙雄飛(13740080) 10:42:50 
重要的第二步也完成了。是不是很簡單吶。呵呵
柱輝<dwin408@qq.com> 10:43:13 
 是的~
成都-耗子[Phper] <jamaitu09@gmail.com> 10:43:20 

京-PHP-趙雄飛(13740080) 10:43:31 
三、我們需要着手修改之前程序的登錄、註冊、這些和用戶基礎數據相關的流程。
京-PHP-趙雄飛(13740080) 10:43:55 
首先來處理登錄。
京-PHP-趙雄飛(13740080) 10:44:03 
找到你原本系統中處理登錄的代碼。
京-PHP-趙雄飛(13740080) 10:44:56 
一般的程序登錄處理流程大概是這樣的。
顯示登錄表單,用戶填寫表單,程序接受到用戶帳號密碼到本地數據庫驗證,成功則登錄成功,反之則提示失敗。
京-PHP-趙雄飛(13740080) 10:45:25 
我們整合到uc,因爲是uc統一管理用戶的基礎信息了。所以不能再到本地數據庫去驗證用戶帳號密碼是否正確了。
京-PHP-趙雄飛(13740080) 10:45:53 
那麼我們需要修改的就是把之前到本地驗證帳號密碼的代碼改成調用uc的用戶登錄接口接口。
京-PHP-趙雄飛(13740080) 10:46:29 
需要注意的是我們在調用這個uc的接口之前要先引入uc的配置文件和uc_cient/client.php文件。
京-PHP-趙雄飛(13740080) 10:47:07 
引入uc的配置文件是因爲這裏記錄着很多重要的KEY,引入client.php是有了調用uc_server接口的函數了。
京-PHP-趙雄飛(13740080) 10:47:52 
回到剛纔,調用uc用戶登錄接口在引入client.php後變得很簡單,就是一個函數,去執行函數即可。
京-PHP-趙雄飛(13740080) 10:48:09 
結合uc的文檔 readme你就知道如何處理這個函數的返回值了。
京-PHP-趙雄飛(13740080) 10:48:24 
登錄成功後,你記得需要調用一下同步登錄的接口。
京-PHP-趙雄飛(13740080) 10:48:28 
也是一個函數而已。
京-PHP-趙雄飛(13740080) 10:49:04 
所以不要把接口想象的多複雜。在這裏接口僅僅是個函數而已。內部如何實現你壓根不需要關心。在你看來他就是一個簡單的函數而已。
京-PHP-趙雄飛(13740080) 10:49:36 
執行了同步登錄的接口,記得要把函數返回值輸出到用戶瀏覽器上。具體怎麼輸出你不要問我了。
京-PHP-趙雄飛(13740080) 10:50:27 
到這裏你的應用已經可以用uc的用戶來登錄了。整合uc已經完成了最重要的環節。並且你也熟悉了uc的接口要如何調用了。
京-PHP-趙雄飛(13740080) 10:51:08 
你可以跟老闆說,明天就和整合完uc了。其實你再用一個小時就能弄完。明天你可以去聊天泡mm了。哈哈
京-PHP-趙雄飛(13740080) 10:51:21 
接下來我們處理用戶註冊的代碼。
京-PHP-趙雄飛(13740080) 10:51:35 
同樣找到原本系統中處理註冊的代碼。
京-PHP-趙雄飛(13740080) 10:52:24 
一樣的流程,前面是出表單,收集用戶信息,程序接收到用戶的表單,可以驗證數據和發性,這些工作都昨晚之後程序把數據插入到本地用戶表。
京-PHP-趙雄飛(13740080) 10:53:18 
我們整合uc需要做的僅僅是在他插入本地用戶表之前調用一下uc的用戶註冊接口。跟上面登錄的時候一樣呢。你需要先引入uc的配置文件和client.php
京-PHP-趙雄飛(13740080) 10:54:01 
具體用戶註冊接口需要那些參數,返回值的範圍這些你們參考uc的readme文檔。我這裏不贅述了。
京-PHP-趙雄飛(13740080) 10:54:29 
註冊需要注意的一點是用戶的id是uc那邊產產生的。
京-PHP-趙雄飛(13740080) 10:55:26 
調用uc的註冊接口,如果一切都ok了,我們可以得到用戶的uid,這個uid在我們插入本地用戶表的時候要插入進去。這樣才能保證我們本地用戶表和uc的用戶表的uid、username是同步的。
京-PHP-趙雄飛(13740080) 10:55:40 
ok,至此用戶註冊也完成了。是不是so easy
京-PHP-趙雄飛(13740080) 10:55:59 
接下來我們講一下用戶修改密碼、email的流程。
京-PHP-趙雄飛(13740080) 10:56:20 
一般應用程序都會有一個用戶中的頁面,用戶可以在此修改自己的密碼和email這些信息。
京-PHP-趙雄飛(13740080) 10:56:35 
傳統的處理方式就是修改後直接保存到自己本地庫。
京-PHP-趙雄飛(13740080) 10:56:55 
我們需要整合到uc,所以密碼和email我們需要同步到uc。那麼具體怎麼做呢。
京-PHP-趙雄飛(13740080) 10:57:29 
就是在你跟新記錄到你本地用戶表的之前先調用uc的修改用戶資料的接口。具體看uc的readme
京-PHP-趙雄飛(13740080) 10:57:54 
這裏需要注意的是修改email或者密碼是需要原密碼的。否則就是一個不安全的因素。
京-PHP-趙雄飛(13740080) 10:58:55 
同樣的地方還有找回密碼的時候,這個時候因爲用戶忘記密碼了。所以修改密碼的時候直接修改,不需要提供原密碼。具體看修改用戶資料的接口。有兩種模式,一種需要原密碼。另一種不要。
京-PHP-趙雄飛(13740080) 10:58:59 
兩個地方別弄混了。
京-PHP-趙雄飛(13740080) 10:59:15 
個人中心修改密碼需要原密碼。找回密碼的時候不需要原密碼。
京-PHP-趙雄飛(13740080) 10:59:32 
至此基本上修改原程序的地方都完成了。
京-PHP-趙雄飛(13740080) 10:59:41 
接下來說一下同步的問題。
京-PHP-趙雄飛(13740080) 10:59:58 
同步因爲是靠你應用程序的uc.php來完成的。
京-PHP-趙雄飛(13740080) 11:00:24 
所以你需要創建一個uc.php文件在你的應用程序下。默認一般是
api/uc.php
京-PHP-趙雄飛(13740080) 11:00:50 
裏面的內容參考dz6.1以及之後的版本。仿照她們的代碼接口。
京-PHP-趙雄飛(13740080) 11:00:52 
即可。
京-PHP-趙雄飛(13740080) 11:01:18 
仿照的只是代碼的結構,具體代碼實現的東西要依照你應用的特徵來寫。
京-PHP-趙雄飛(13740080) 11:01:35 
比如同步登錄這個接口。dz是保存一個auth的cookie
京-PHP-趙雄飛(13740080) 11:01:56 
你的應用如果是靠session來保持的,那麼你也應用是寫session
京-PHP-趙雄飛(13740080) 11:02:27 
這裏可以直接copy你應用程序登錄代碼那裏保持登錄的代碼進來稍加修改即可。


京-PHP-趙雄飛(13740080) 11:02:40 
同步退出也一樣的。
京-PHP-趙雄飛(13740080) 11:02:52 
至此整合uc已經全部完成。
京-PHP-趙雄飛(13740080) 11:02:56 
大家提問時間。
聆聽(695515122) 11:05:20 
還點寫一個自動跳轉
京-PHP-趙雄飛(13740080) 11:05:54 
北京-PHP.NET(328150280)  11:04:33
我的程序中 輸出那個同步script 但是在哪輸出好呢

在你提示登錄成功的頁面輸出。
口明明口(328001026) 11:05:56 
是的
北京-PHP.NET(328150280) 11:06:31 
我現在是轉頁
北京-PHP.NET(328150280) 11:06:58 
如果不轉頁必須保持3秒以上才能登錄上
長沙-滄海一粟<xiezhilong167@163.com> 11:07:39 
我現在假A站和B站能uc通信
A站有一些會員了
B站也有一些會員了
然後再用ucenter整合
那麼對於已有的會員,ucenter是怎麼處理的
長沙-滄海一粟<xiezhilong167@163.com> 11:08:07 
能==通
Bruce(61742108) 11:08:30 
有個合併會員函數API
Bruce(61742108) 11:08:45 
不知道能用上不
長沙-滄海一粟<xiezhilong167@163.com> 11:08:59 
如果有兩站會員名相同的呢
讓我想想(375110054) 11:09:12 
合併的時候會有提示的
讓我想想(375110054) 11:09:28 
你們都詳細看看api裏面幾乎都有你們提到的問題
長沙-滄海一粟<xiezhilong167@163.com> 11:09:36 
我只想知道是怎麼處理的,是不是相同的會員改名還是?
讓我想想(375110054) 11:09:57 
那就改名啊
京-PHP-趙雄飛(13740080) 11:11:10 
長沙-滄海一粟<xiezhilong167@163.com>  11:07:39
我現在假A站和B站能uc通信
A站有一些會員了
B站也有一些會員了
然後再用ucenter整合
那麼對於已有的會員,ucenter是怎麼處理的

已有的會員你想辦法先倒入到ucenter中。
京-PHP-趙雄飛(13740080) 11:11:40 
長沙-滄海一粟<xiezhilong167@163.com>  11:08:59
如果有兩站會員名相同的呢

合併很複雜,也不一定就正確。我建議你做個取捨。
北京-丁一(410772675) 11:12:36 
cookie怎麼傳過去的

北京-PHP.NET(328150280) 11:12:50 
我直接導入進去的
柱輝<dwin408@qq.com> 11:13:01 
長沙-滄海一粟<xiezhilong167@163.com>  11:07:39
我現在假A站和B站能uc通信
A站有一些會員了
B站也有一些會員了
然後再用ucenter整合
那麼對於已有的會員,ucenter是怎麼處理的

在UC建立通信,分別在AB中加入UID字段,寫個程序將AB中的數據導入到UC中去,返回UID保存在原數據庫中。EMAIL是爲一的,看你如何處理
北京-PHP.NET(328150280) 11:13:04 
導入失敗的就讓他登錄後再自己改
京-PHP-趙雄飛(13740080) 11:13:14 
北京-PHP.NET(328150280)  11:13:04
導入失敗的就讓他登錄後再自己改


我有點挫敗感。
京-PHP-趙雄飛(13740080) 11:13:27 
你看我啥時候講cookie的傳遞了。
北京-PHP.NET(328150280) 11:13:43 

京-PHP-趙雄飛(13740080) 11:13:46 
北京-丁一(410772675)  11:12:36
cookie怎麼傳過去的

上面是回答這個的。
京-PHP-趙雄飛(13740080) 11:14:01 
北京-PHP.NET(328150280)  11:13:43


抱歉copy錯了
長沙-滄海一粟<xiezhilong167@163.com> 11:14:20 
我覺得可不可以,把這個是否整合的權力交給用戶自己呢
晉PHP/ASP-YinG(33098184) 11:14:32 
有數據的整合,可以考慮爲老用戶單獨做個登錄頁面,用戶登錄時調用註冊接口
京-PHP-趙雄飛(13740080) 11:14:41 
取決與你願意爲此事付出的成本。
京-PHP-趙雄飛(13740080) 11:14:55 
這樣當然體驗很好,但是需要開發的東西比較多。
北京-丁一(410772675) 11:15:36 

uc.php那邊接收幾個參數啊

Bruce(61742108) 11:15:26 
長沙-滄海一粟<xiezhilong167@163.com>  11:14:20

API 裏有把重名用戶合併uc
Bruce(61742108) 11:15:45 
uc_user_merge()
長沙-滄海一粟<xiezhilong167@163.com> 11:15:42 
也就是用戶願意和其他系統同步通信的話,就改變自己的用戶名,如果不願意就可以保留不變
天津-savelearn(1270989) 11:16:06 
飛哥  UC。php 可以判斷出登錄的是不是 UCENTER的管理員嗎?
長沙-滄海一粟<xiezhilong167@163.com> 11:16:08 
嗯,我是想ucenter現在唯一的缺陷還在這裏
京-PHP-趙雄飛(13740080) 11:16:09 
不可能。登錄沒辦法做了
晉PHP/ASP-YinG(33098184) 11:16:17 
這樣登錄驗證起來比較麻煩
京-PHP-趙雄飛(13740080) 11:16:25 
uid\username在各個系統以及uc中必須統一。
長春-小C(24679070) 11:16:46 
老大,有沒有修復MYSQL的修復工具沒有啊?
長春-小C(24679070) 11:17:01 
我的數據庫恢復失敗了,想修復下
京-PHP-趙雄飛(13740080) 11:16:59 
別跑題。
京-PHP-趙雄飛(13740080) 11:17:04 
repair table
長春-小C(24679070) 11:17:25 
不好意思,謝謝
Bruce(61742108) 11:18:42 
石頭,你講的時候,沒進到羣裏。你講的記錄能copy一份嗎?
京-PHP-趙雄飛(13740080) 11:19:45 
嗯。我會copy出來的。
Bruce(61742108) 11:19:59 
謝謝石頭!
京-PHP-趙雄飛(13740080) 11:20:47 
表客氣。
京-PHP-趙雄飛(13740080) 11:21:14 
我今天講這些希望大家都明白基本的原理。因爲我之前遇到很多有問題的人都是原理不明白。
天津-savelearn(1270989) 11:22:11 
  飛哥 你說今天還講後臺登錄的同步呢
Bruce(61742108) 11:22:15 
嗯,知其然知其所以然!
京-PHP-趙雄飛(13740080) 11:22:39 
天津-savelearn(1270989)  11:22:11
  飛哥 你說今天還講後臺登錄的同步呢

OMG。我要奔潰了。
京-PHP-趙雄飛(13740080) 11:22:49 
難道我沒有講到同步登錄嗎?
長沙-滄海一粟<xiezhilong167@163.com> 11:22:59 
呵呵
長沙-滄海一粟<xiezhilong167@163.com> 11:23:14 
別上火,上火易傷身
天津-savelearn(1270989) 11:23:17 
後臺管理員 不是普通用戶
京-PHP-趙雄飛(13740080) 11:24:05 
後臺管理員怎麼還有同步登錄呢?
京-PHP-趙雄飛(13740080) 11:24:17 
你是說應用的後臺,還是uc的後臺?


口明明口(328001026) 11:24:24 
石頭兄,那頭像調用的那,是否會有耗資源的問題?
京-PHP-趙雄飛(13740080) 11:24:49 
問題不大。
天津-savelearn(1270989) 11:25:05 
DZ論壇等候以後 可以在論壇的後臺 直接打開UCENTER的後臺 而不需要再登錄 UCENTER    我自己的應用也想這麼做
京-PHP-趙雄飛(13740080) 11:25:10 
我站點所有圖片都通過php輸出都沒啥問題。
天津-savelearn(1270989) 11:25:16 
登錄以後  打錯字了
京-PHP-趙雄飛(13740080) 11:25:33 
DZ論壇等候以後 可以在論壇的後臺 直接打開UCENTER的後臺 而不需要再登錄 UCENTER    我自己的應用也想這麼做

這麼做沒啥意義。
口明明口(328001026) 11:26:08 
石頭兄,你們積分,用到UCenter中的了嗎
長沙-滄海一粟<xiezhilong167@163.com> 11:26:09 
而且也降低了系統的安全性
Bruce(61742108) 11:26:16 
登陸後臺再次登錄uc ,是爲了安全
京-PHP-趙雄飛(13740080) 11:26:18 
uc沒有積分。
Bruce(61742108) 11:26:36 
那個不是同步的問題!
京-PHP-趙雄飛(13740080) 11:26:36 
可以通過uc來串聯不同應用之間的積分。
天津-savelearn(1270989) 11:26:58 

長沙-滄海一粟<xiezhilong167@163.com> 11:27:07 
違背了設計初衷
京-PHP-趙雄飛(13740080) 11:27:13 
是的。
Bruce(61742108) 11:27:40 
uc的責任比較重,有很多應用,所以犧牲點麻煩換取安全,我覺得值得
天津-savelearn(1270989) 11:28:04 
問題是 UC自己開發的應用貌似都可以這麼登錄吧 而且管理員的權限 在那擺着呢 沒有權限也管理不了啊
Bruce(61742108) 11:29:10 
兄弟別鑽牛角尖。自己在琢磨琢磨!
天津-savelearn(1270989) 11:29:52 
唉 算了  白等了一天 自己研究吧
京-PHP-趙雄飛(13740080) 11:29:56 
天津-savelearn(1270989)  11:28:04
問題是 UC自己開發的應用貌似都可以這麼登錄吧 而且管理員的權限 在那擺着呢 沒有權限也管理不了啊

dz後臺登錄uc僅僅是一個連接而已。
京-PHP-趙雄飛(13740080) 11:30:05 
是你之前uc登錄過了。否則還是需要密碼的。
京-PHP-趙雄飛(13740080) 11:30:14 
還是需要登錄uc的。
Bruce(61742108) 11:30:29 
現在才11:30,你還有半天呢!
京-PHP-趙雄飛(13740080) 11:30:27 
uc的管理員有創始人和普通管理員之分。
京-PHP-趙雄飛(13740080) 11:31:16 
你要直接在應用後臺免登錄管理uc,那當前的管理員該對應uc的哪一類管理員,哪一個帳號呢?
天津-savelearn(1270989) 11:32:06 
UC 有算法啊  我就是不知道這個算法才問的啊 
京-PHP-趙雄飛(13740080) 11:32:39 
OMG,你完全答非所謂。
京-PHP-趙雄飛(13740080) 11:32:46 
所問。
Bruce(61742108) 11:33:07 
圈子繞大了
京-PHP-趙雄飛(13740080) 11:33:13 
你想實現是可以的,手段就是通過authcode加密解密去弄。
天津-savelearn(1270989) 11:33:24 
$ip = getIp();
$agent = $_SERVER['HTTP_USER_AGENT'];
$authkey = md5($ip.$agent."0CbN1h2Y4w649weT9B264L6N396V46fG68b9bC0y4H195Q345QdS0hff5cch4Y1o");
$check = substr(md5($ip.$agent), 0, 8);
$sid = rawurlencode(uc_authcode("$Example_username\t$check", 'ENCODE', $authkey, 1800));
return $sid;
天津-savelearn(1270989) 11:34:01 
UC 根據IP 遊覽器信息加 密出一個 sid 裏面包含管理員帳號 的 cookie
Bruce(61742108) 11:34:15 
兄弟昨天好像問過這個問題。
天津-savelearn(1270989) 11:34:29 
是啊 我就等今天 飛哥能給我講講呢
京-PHP-趙雄飛(13740080) 11:34:48 
這個不用講。這個你就按照這個去做就可以了。
Bruce(61742108) 11:35:21 
uc_authcode('sidstring','DECODE');
解密你試過嗎?
Bruce(61742108) 11:36:14 
這個跟同步到沒關係啊,uc有加密解密機制吧!這個我沒試過
天津-savelearn(1270989) 11:36:34 
我做了 可是登錄不了 上面那個代碼也是從 UCenter裏面分離出來的

但是到我自己的應用裏單擊連接到UCENTER 依舊需要登錄 

所以我纔等了一天來問的
Bruce(61742108) 11:37:07 
你試試解密,如果能解出來明碼,那你在一步一步排除。
Bruce(61742108) 11:37:39 
石頭跟你離那麼遠,講的只能是啓發性和原理性的,給你解決你的代碼問題,這不現實呀
京-PHP-浮雲(6189014) 11:38:07 
查一下uc.php的問題
天津-savelearn(1270989) 11:38:10 
嗯 我自己試去吧  不麻煩大家了 

我就想問問 他碰沒碰到過這種情況 
Bruce(61742108) 11:38:41 
嗯!好好自己研究,攻克了,跟大家聊聊
天津-savelearn(1270989) 11:38:42 
我也沒想誰能幫我寫代碼 我只需要知道大概的問題出在哪
Bruce(61742108) 11:39:18 

京-PHP-趙雄飛(13740080) 11:46:02 
你的思路是錯誤的。不要想着同步。
京-PHP-趙雄飛(13740080) 11:46:17 
大多數時候你並不是登錄應用後臺就要去管理uc的後臺。
京-PHP-趙雄飛(13740080) 11:47:01 
在點擊那個uc的連接的時候把加密串傳過去,uc接收到之後給當前用戶設置爲一登陸即可。
京-PHP-趙雄飛(13740080) 11:47:26 
我先撤了。大家慢慢聊。
北京-蝸牛(PHP)<gb2312@163.com> 11:47:47 
辛苦了
京-PHP-趙雄飛(13740080) 11:47:50 
有誰原理幫忙把剛纔的講課內容copy出來共享到uc的開發羣裏。
京-PHP-趙雄飛(13740080) 11:47:57 
我下班了。
京-PHP-趙雄飛(13740080) 11:48:11 
今天離職了。要去新公司去報道了。
京-PHP-趙雄飛(13740080) 11:48:13 
88
Capricorn~(873479382) 11:48:25 

Capricorn~(873479382) 11:48:32 
掙多多的錢哦~~
北京-潘立光(516487837) 11:49:06 
 那個公司 肯定 很牛x吧
粵-JSP-lucene(7290204) 11:49:44 
非常感謝~ 


發佈了51 篇原創文章 · 獲贊 19 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章