本發(fā)明涉及瀏覽器領域,尤其涉及一種跨域訪問方法和裝置。
背景技術:
對于大中型互聯(lián)網企業(yè),往往有很多產品業(yè)務線,每個業(yè)務線一般對應一個域。為方便管理,大多數企業(yè)會建立一公共的用戶中心,以便集中管理。但各個域不在同一域,不能通過cookie的形式跨域訪問。
技術實現(xiàn)要素:
有鑒于此,有必要提供一種跨域訪問方法及裝置,以解決上述問題。
本發(fā)明提供一種跨域訪問方法。所述方法包括: 響應用戶輸入的登錄信息而登錄第一域;
獲取所述登錄信息,根據所述登錄信息從所述第一域登錄總域,將所述登錄信息存儲在所述總域,其中,所述第一域為所述總域的子節(jié)點;所述總域將所述登錄信息傳送至若干第二域,所述第一域具有對應每一所述第二域的跨域接口,所述第一域通過所述跨域接口向對應的所述第二域發(fā)出登錄請求,其中,所述若干第二域與所述第一域并列為所述總域的子節(jié)點,所述若干第二域與所述第一域在不同域;及所述第二域接收所述登錄信息及所述登錄請求,所述第二域根據所述登錄信息及所述登錄請求允許所述第一域登錄所述第二域。
本發(fā)明還提供一種跨域訪問裝置。所述跨域訪問裝置第一登錄模塊、第二登錄模塊、傳送模塊和第三登錄模塊。所述第一登錄模塊用于響應用戶輸入的登錄信息而登錄第一域。所述第二登錄模塊用于獲取所述登錄信息,根據所述登錄信息從所述第一域登錄總域,將所述登錄信息存儲在所述總域,其中,所述第一域為所述總域的子節(jié)點。所述傳送模塊用于控制所述總域將所述登錄信息傳送至若干第二域,其中,所述第一域具有對應每一所述第二域的跨域接口,及控制所述第一域通過所述跨域接口向對應的所述第二域發(fā)出登錄請求,其中,所述若干第二域與所述第一域并列為所述總域的子節(jié)點,所述若干第二域與所述第一域在不同域。所述第三登錄模塊用于控制所述第二域接收所述登錄信息及所述登錄請求,所述第二域根據所述登錄信息及所述登錄請求允許所述第一域登錄所述第二域。
本發(fā)明使用單點登錄,并將相關的登錄信息漫游到其它域中,使用跨域接口跨域到相關域,避免重復輸入登錄信息的繁瑣。
附圖說明
為了更清楚地說明本發(fā)明實施方式的技術方案,下面將對本發(fā)明實施方式中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實施方式,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發(fā)明實施方式的跨域訪問方法的示意性流程圖。
圖2為本發(fā)明實施方式的跨域訪問過程的示意圖。
圖3是本發(fā)明實施方式的跨域訪問裝置的示意性框圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面將結合本發(fā)明實施方式中的附圖,對本發(fā)明實施方式中的技術方案進行清楚、完整地描述。需要說明的是,在不沖突的情況下,本申請的實施方式及實施方式中的特征可以相互組合。
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,所描述的實施方式僅是本發(fā)明的一部分實施方式,而不是全部的實施方式。基于本發(fā)明中的實施方式,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施方式,都屬于本發(fā)明保護的范圍。
除非另有定義,本文所使用的所有的技術和科學術語與屬于本發(fā)明的技術領域的技術人員通常理解的含義相同。本文中在本發(fā)明的說明書中所使用的術語只是為了描述具體的實施方式的目的,不是旨在于限制本發(fā)明。本文所使用的術語“及/或”包括一個或多個相關的所列項目的任意的和所有的組合。
本發(fā)明說明書、權利要求書和附圖中出現(xiàn)的術語“第一”和“第二”等是用于區(qū)別不同的對象,而并非用于描述特定的順序。此外,術語“包括”和“具有”以及它們任何變形,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產品或設備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對于這些過程、方法、產品或設備固有的其它步驟或單元。
請參考圖1,圖1為一實施方式中跨域訪問方法的流程示意圖。所述方法應用在電子設備中,所述電子設備可以是任何一種可與用戶進行人機交互的電子產品,例如,個人計算機、平板電腦、智能手機、個人數字助理(Personal Digital Assistant,PDA)等。所述電子設備所處的網絡包括但不限于互聯(lián)網、廣域網、城域網、局域網、虛擬專用網絡(Virtual Private Network,VPN)等。
步驟S101,響應用戶輸入的登錄信息而登錄第一域,請一并參考圖2,例如,用戶中心ucenter.aaa.com,三個產品,分別是產品A:www.aaa.com,產品B:www.bbb.com,產品C:www.ccc.com。具體地,所述登錄信息包括域賬號、域密碼和驗證碼。本實施方式中,響應用戶在第一域的登錄欄中輸入的登錄名、登錄密碼和驗證碼信息后登錄所述第一域,且登錄成功后,將所述登錄信息加密,具體為將所述登錄信息中的登錄密碼和驗證碼一同加密生成一加密的數據包,例如,md5_token。在其它實施方式中,所述登錄信息可以不用加密。
步驟S102,獲取所述登錄信息,根據所述登錄信息從所述第一域登錄總域,并將所述登錄信息存儲在所述總域,其中,總域為用戶中心,例如,ucenter.aaa.com,所述第一域為所述總域的子節(jié)點。例如,產品A:www.aaa.com,產品B:www.bbb.com,或產品C:www.ccc.com。本實施方式中,所述第一域為產品A:www.aaa.com,從所述第一域登錄所述總域后,還跳轉至所述第一域的頁面。
步驟S103,總域將所述登錄信息傳送至若干第二域,第一域通過跨域接口向對應的第二域發(fā)出登錄請求。其中,所述第一域具有對應每個第二域的跨域接口。 通過設置在所述第一域中的跨域接口請求對應的第二域根據所獲取的登錄信息登錄所述第二域。其中,所述若干第二域與所述第一域并列為所述總域的子節(jié)點,所述若干第二域與所述第一域在不同域。例如,第二域為產品B:www.bbb.com或者產品C:www.ccc.com。本實施方式中,所述跨域接口為AJAX(Asynchronous Java Script And Extensible Markup Language,異步Java描述語言和可擴展標記語言)接口,具體為AJAX的jsonp(JSON with Padding)形式的接口。其它實施方式中,所述跨域接口可為其它適合形式的接口。
步驟S104,第二域接收所述登錄信息及所述登錄請求,第二域還根據所述登錄信息及所述登錄請求允許所述第一域登錄所述第二域。本實施方式中,所述第二域在接收所述登錄信息及所述登錄請求后做安全性驗證,且在安全性驗證通過后,允許所述第一域通過對應的跨域接口訪問所述第二域。其它實施方式中,安全性驗證可省略。本實施方式中,第二域接收所述登錄信息后,還將所述登錄信息存儲到所述第二域的數據庫中或者緩存中。其中,所述緩存為redis或memcache。具體地,redis為分布式的高速緩存系統(tǒng),它支持存儲的類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)),memcache為分布式的高速緩存系統(tǒng)。其中,所述安全性驗證包括但不限于對所述登錄信息進行驗證等,驗證通過后,在所述第二域中寫相應的cookie信息以及其他操作。其中,Cookies就是服務器暫存放在本地里的資料,其為.txt格式的文本文件,當下次再訪問時,就會依據Cookie里的內容來判斷使用者,并送出特定的網頁內容。
在一實施方式中,所述跨域訪問方法還包括步驟S105。
步驟S105,響應在所述第一域的退出操作而從所述第一域退出登錄,相應的,從總域和第二域中退出。在退出登錄成功后將所述第一域中的登錄信息更新為空,并將所述總域中的登錄信息更新為空,且通過所述跨域接口請求將所述第二域中的登錄信息更新為空,即從所述總域及所述第二域中退出。
請參閱圖3,為本發(fā)明一實施方式中的跨域訪問裝置100的模塊示意圖。
所述跨域訪問裝置100包括第一登錄模塊10、第二登錄模塊20、傳送模塊30和第三登錄模塊40。
所述第一登錄模塊10用于響應用戶輸入的登錄信息而登錄第一域,請一并參考圖2,例如,用戶中心ucenter.aaa.com,三個產品,分別是產品A:www.aaa.com,產品B:www.bbb.com,產品C:www.ccc.com。具體地,所述登錄信息包括域賬號、域密碼和驗證碼。本實施方式中,所述第一登錄模塊10用于響應用戶在第一域的登錄欄中輸入的登錄名、登錄密碼和驗證碼信息后登錄所述第一域,且登錄成功后,將所述登錄信息加密,具體為將所述登錄信息中的登錄密碼和驗證碼一同加密生成一加密的數據包,例如,md5_token。在其它實施方式中,所述登錄信息可以不用加密。
第二登錄模塊20,用于獲取所述登錄信息,根據所述登錄信息從所述第一域登錄總域,并將所述登錄信息存儲在所述總域,其中,總域為用戶中心,例如,ucenter.aaa.com,所述第一域為所述總域的子節(jié)點。例如,產品A:www.aaa.com,產品B:www.bbb.com,或產品C:www.ccc.com。本實施方式中,所述第一域為產品A:www.aaa.com。本實施方式中,第二登錄模塊20還用于在從所述第一域登錄所述總域后跳轉至所述第一域的頁面。
傳送模塊30,用于控制總域將所述登錄信息傳送至若干第二域,第一域通過跨域接口向對應的第二域發(fā)出登錄請求。其中,所述第一域具有對應每個第二域的跨域接口。 通過設置在所述第一域中的跨域接口請求對應的第二域根據所獲取的登錄信息登錄所述第二域。其中,所述若干第二域與所述第一域并列為所述總域的子節(jié)點,所述若干第二域與所述第一域在不同域。例如,第二域為產品B:www.bbb.com或者產品C:www.ccc.com。本實施方式中,所述跨域接口為AJAX(Asynchronous Java Script And Extensible Markup Language,異步Java描述語言和可擴展標記語言)接口,具體為AJAX的jsonp(JSON with Padding)形式的接口。其它實施方式中,所述跨域接口可為其它適合形式的接口。
第三登錄模塊40,用于控制第二域接收所述登錄信息及所述登錄請求,第二域還根據所述登錄信息及所述登錄請求允許所述第一域登錄所述第二域。本實施方式中,所述第三登錄模塊40還用于控制所述第二域在接收所述登錄信息及所述登錄請求后做安全性驗證,且在安全性驗證通過后,允許所述第一域通過對應的跨域接口訪問所述第二域。其它實施方式中,安全性驗證可省略。本實施方式中,所述第三登錄模塊40還用于在所述第二域接收所述登錄信息后,還將所述登錄信息存儲到所述第二域的數據庫中或者緩存中。其中,所述緩存為redis或memcache。具體地,redis為分布式的高速緩存系統(tǒng),它支持存儲的類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)),memcache為分布式的高速緩存系統(tǒng)。其中,所述安全性驗證包括但不限于對所述登錄信息進行驗證等,驗證通過后,在所述第二域中寫相應的cookie信息以及其他操作。其中,Cookies就是服務器暫存放在本地里的資料,其為.txt格式的文本文件,當下次再訪問時,就會依據Cookie里的內容來判斷使用者,并送出特定的網頁內容。
在一實施方式中,所述跨域訪問裝置100還包括退出模塊50。其中,所述退出模塊50用于響應在所述第一域的退出操作而從所述第一域退出登錄,相應的,從總域和第二域中退出登錄。所述退出模塊50具體用于將所述第一域中的登錄信息更新為空,并將所述總域中的登錄信息更新為空,且通過所述跨域接口請求將所述第二域中的登錄信息更新為空,即從所述第一域、總域及所述第二域中退出。
可理解,本實施方式以第一域中具有對應每一所述第二域的跨域接口為例說明本發(fā)明,可理解,此“第一”、“第二”并不能限制本發(fā)明,任一所述第一域或任一所述第二域均可包含對應其它第一域或者第二域的跨域接口,也就是說,通過任一所述第一域或者所述第二域均可訪問其它的第一域或者第二域,實際操作時,只要任意登錄所述第一域或者第二域,就可以訪問其它的第一域或者第二域。
本發(fā)明使用單點登錄,并將相關的登錄信息漫游到其它域中,使用跨域接口跨域到相關域中寫cookie信息,相關域根據cookie信息來判定用戶的登錄態(tài)以及相關的登錄信息,用戶退出的時候,使用跨域接口請求相關域中銷毀相關的登錄信息,避免重復輸入登錄信息的繁瑣。
本發(fā)明所述的電子設備包括至少一個處理器、至少一個存儲器、至少一個收發(fā)器及系統(tǒng)總線。所述收發(fā)器可以是有線發(fā)送端口,也可以為無線設備,例如包括天線裝置,用于與其他設備進行數據通信。所述存儲器可以是高速RAM存儲器,也可以是非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。所述存儲器中存儲有程序代碼,例如所述的跨域訪問裝置100,及各個應用程序運行中產生及使用的數據。所述處理器可通過系統(tǒng)總線調用所述存儲器中存儲的程序代碼及數據,例如跨域訪問裝置100以執(zhí)行相關的功能從而實現(xiàn)跨域訪問方法。
本說明書實施方式所述的內容僅是對發(fā)明構思的實現(xiàn)形式的列舉,本發(fā)明的保護范圍不應當被視為僅限于實施方式所陳述的具體形式,本發(fā)需要說明的是,本說明書中的各個實施方式均采用遞進的方式描述,每個實施方式重點說明的都是與其它實施方式的不同之處,各個實施方式之間相同相似的部分互相參見即可。對于裝置實施方式而言,由于其與方法實施方式基本相似,所以描述的比較簡單,相關之處參見方法實施方式的部分說明即可。
在本申請所提供的幾個實施方式中,應該理解到,所揭露的裝置,可通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施方式僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上??梢愿鶕嶋H的需要選擇其中的部分或者全部單元來實現(xiàn)本實施方式方案的目的。
另外,在本發(fā)明各個實施方式中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網絡設備等)執(zhí)行本發(fā)明各個實施方式所述方法的全部或部分步驟。而前述的存儲介質包括:磁碟、光盤、只讀存儲記憶體(Read-Only Memory,簡稱ROM)或隨機存儲記憶體(Random Access Memory,簡稱RAM)等。
以上所述,以上實施方式僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施方式對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施方式所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施方式技術方案的范圍。