本發(fā)明涉及Web應(yīng)用技術(shù)領(lǐng)域,具體涉及一種異構(gòu)跨域Web應(yīng)用中單點(diǎn)注銷的實(shí)現(xiàn)方法。
背景技術(shù):
同一個(gè)單位內(nèi)部可能存在多個(gè)Web應(yīng)用業(yè)務(wù)系統(tǒng),為了方便用戶的操作,增強(qiáng)用戶體驗(yàn),一個(gè)單位內(nèi)部的多個(gè)業(yè)務(wù)系統(tǒng)之間多采用單點(diǎn)登錄進(jìn)行集成。
單點(diǎn)登錄集成后,如何進(jìn)行單點(diǎn)注銷?
目前比較普遍的單點(diǎn)注銷方式就是使用ajax輪詢,逐次向每個(gè)被集成端發(fā)送注銷請(qǐng)求,所有被集成端注銷完成后,單點(diǎn)注銷完成。
但是,ajax輪詢注銷仍然存在一些不足:
其一,不能跨域,不支持跨域發(fā)送請(qǐng)求;
其二,只能逐個(gè)順序發(fā)送請(qǐng)求,注銷效率低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是:本發(fā)明針對(duì)以上問(wèn)題,提供一種異構(gòu)跨域Web應(yīng)用中單點(diǎn)注銷的實(shí)現(xiàn)方法,能有效的規(guī)避ajax輪詢存在的不足,能很好的支持異構(gòu)、跨域環(huán)境的單點(diǎn)注銷,并且支持同時(shí)向多個(gè)被集成端發(fā)送注銷請(qǐng)求,注銷效率高,技術(shù)實(shí)現(xiàn)簡(jiǎn)單,能有效減少前期開發(fā)和后期運(yùn)維工作量。
本發(fā)明所采用的技術(shù)方案為:
一種異構(gòu)跨域Web應(yīng)用中單點(diǎn)注銷的實(shí)現(xiàn)方法,所述方法實(shí)現(xiàn)過(guò)程如下:
1)將被集成端的注銷URL在集成端進(jìn)行注冊(cè)保存;
2)集成端提供統(tǒng)一注銷URL,該URL接受一個(gè)參數(shù)callback_url(回跳地址);
3)集成端和被集成端頁(yè)面的所有注銷鏈接,全部鏈接到集成端的統(tǒng)一注銷URL;
4)請(qǐng)求統(tǒng)一注銷URL時(shí),在集成端的后端首先執(zhí)行集成端的注銷操作(注銷session、清理cookie等操作),然后將集成端保存的所有被集成端的注銷URL以一定的格式響應(yīng)到客戶端(瀏覽器)。
統(tǒng)一資源定位符(Uniform Resource Locator,URL)是對(duì)可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問(wèn)方法的一種簡(jiǎn)潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址?;ヂ?lián)網(wǎng)上的每個(gè)文件都有一個(gè)唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。
4)中響應(yīng)內(nèi)容是一段html代碼,所述html特征如下:
html代碼中包含一個(gè)隱藏的<div>;
該<div>中包含若干<img>標(biāo)簽,每個(gè)<img>標(biāo)簽的src屬性指向一個(gè)被集成端的注銷URL;
<body>的onload事件觸發(fā)一個(gè)javascript函數(shù),該函數(shù)主要用于負(fù)責(zé)注銷后的頁(yè)面跳轉(zhuǎn)(跳轉(zhuǎn)至callback_url)。
所述方法具體操作流程如下:
1)客戶端瀏覽器發(fā)送統(tǒng)一注銷請(qǐng)求到集成端;
2)集成端執(zhí)行本地注銷操作后,響應(yīng)一段包含有各被集成端注銷URL的html代碼;
3)客戶端瀏覽器通過(guò)<img>標(biāo)簽自動(dòng)發(fā)送注銷請(qǐng)求到個(gè)被集成端;
4)各被集成端執(zhí)行完注銷操作。
本發(fā)明的有益效果為:
本發(fā)明是一種輕量簡(jiǎn)便的單點(diǎn)注銷的實(shí)現(xiàn),其技術(shù)實(shí)現(xiàn)簡(jiǎn)單,對(duì)集成端和被集成端影響較小,能夠完美的支持異構(gòu)、跨域環(huán)境,并支持同時(shí)向多個(gè)被集成端發(fā)送注銷請(qǐng)求,注銷效率高。
附圖說(shuō)明
圖1為本發(fā)明方法操作流程示意圖。
具體實(shí)施方式
下面根據(jù)說(shuō)明書附圖,結(jié)合具體實(shí)施方式對(duì)本發(fā)明進(jìn)一步說(shuō)明:
實(shí)施例1:
一種異構(gòu)跨域Web應(yīng)用中單點(diǎn)注銷的實(shí)現(xiàn)方法,所述方法實(shí)現(xiàn)過(guò)程如下:
1、單點(diǎn)注銷的各被集成端,分別提供自己的注銷URL(根據(jù)實(shí)際需要,非必需)。
2、將被集成端的注銷URL在集成端進(jìn)行注冊(cè)保存;
3、集成端提供統(tǒng)一注銷URL,該URL接受一個(gè)參數(shù)callback_url(回跳地址);
4、集成端和被集成端頁(yè)面的所有注銷鏈接,全部鏈接到集成端的統(tǒng)一注銷URL;
5、請(qǐng)求統(tǒng)一注銷URL時(shí),在集成端的后端首先執(zhí)行集成端的注銷操作(注銷session、清理cookie等操作),然后將集成端保存的所有被集成端的注銷URL以一定的格式響應(yīng)到客戶端(瀏覽器)。
實(shí)施例2
在實(shí)施例1的基礎(chǔ)上,本實(shí)施例所述方法通過(guò)動(dòng)態(tài)響應(yīng)一段html代碼,響應(yīng)到客戶端(瀏覽器),所述html特征如下:
html代碼中包含一個(gè)隱藏的<div>;
該<div>中包含若干<img>標(biāo)簽,每個(gè)<img>標(biāo)簽的src屬性指向一個(gè)被集成端的注銷URL;
<body>的onload事件觸發(fā)一個(gè)javascript函數(shù),該函數(shù)主要用于負(fù)責(zé)注銷后的頁(yè)面跳轉(zhuǎn)(跳轉(zhuǎn)至callback_url)。
實(shí)施例3
如圖1所示,在實(shí)施例2的基礎(chǔ)上,本實(shí)施例所述方法具體操作流程如下:
1、客戶端瀏覽器發(fā)送統(tǒng)一注銷請(qǐng)求到集成端;
2、集成端執(zhí)行本地注銷操作后,響應(yīng)一段包含有各被集成端注銷URL的html代碼;
3、客戶端瀏覽器通過(guò)<img>標(biāo)簽自動(dòng)發(fā)送注銷請(qǐng)求到個(gè)被集成端;
4、各被集成端執(zhí)行完注銷操作。
實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。