本發(fā)明實(shí)施例涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種防止用戶重復(fù)登錄的方法和服務(wù)器。
背景技術(shù):
Web集群是由多個(gè)同時(shí)運(yùn)行同一個(gè)web應(yīng)用的服務(wù)器組成,在外界看來就像一個(gè)服務(wù)器一樣,多個(gè)服務(wù)器共同來為客戶提供更高性能的服務(wù)。由于WEB集群環(huán)境中有多個(gè)服務(wù)器組成,從而會(huì)出現(xiàn)同一用戶在多個(gè)服務(wù)器上登錄并操作的情況,進(jìn)而帶來系統(tǒng)性能問題和安全問題。系統(tǒng)性能問題主要是多個(gè)相同的用戶同時(shí)操作會(huì)對(duì)系統(tǒng)造成壓力;安全問題指用戶賬號(hào)安全性的問題,允許一個(gè)賬戶重復(fù)登錄,就會(huì)有多人在不同服務(wù)器上同時(shí)操作同一個(gè)賬戶的可能性,就有可能造成操作沖突、操作結(jié)果不符合預(yù)期等。現(xiàn)有技術(shù)中解決用戶在服務(wù)器上重復(fù)登錄的方法主要是利用數(shù)據(jù)庫標(biāo)記用戶登錄狀態(tài);但這種方式由于需要頻繁地與數(shù)據(jù)庫交互,容易引起性能問題,因?yàn)閿?shù)據(jù)庫建立連接是消耗時(shí)間和資源的;同時(shí)這種方式也需要考慮用戶非正常退出的情況,如果用戶直接關(guān)閉瀏覽器或者是計(jì)算機(jī),那么數(shù)據(jù)庫中的字段永遠(yuǎn)是已登錄標(biāo)記,那么下次用戶登錄時(shí),用戶會(huì)登錄不進(jìn)去,其實(shí)真實(shí)的情況是并沒有用戶處于登錄狀態(tài);因此,現(xiàn)有技術(shù)中利用數(shù)據(jù)庫標(biāo)記用戶登錄狀態(tài)的方法并沒有很好解決同一用戶在多個(gè)服務(wù)器上重復(fù)登錄并操作的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種防止用戶重復(fù)登錄的方法和服務(wù)器,用以解決現(xiàn)有技術(shù)中出現(xiàn)同一用戶在多個(gè)服務(wù)器上重復(fù)登錄并操作的問題。
本發(fā)明實(shí)施例提供一種防止用戶重復(fù)登錄的方法,應(yīng)用于集群WEB環(huán)境中,包括:
第一服務(wù)器接收用戶的操作請(qǐng)求,第一服務(wù)器為所述集群WEB環(huán)境中用戶登錄成功的任意一個(gè)服務(wù)器;
第一服務(wù)器判斷是否具有用戶的權(quán)限信息,若具有用戶的權(quán)限信息,則從存儲(chǔ)區(qū)獲取用戶的第一會(huì)話信息,第一會(huì)話信息為存儲(chǔ)區(qū)中存儲(chǔ)的用戶最后一次成功登錄的會(huì)話信息;
第一服務(wù)器判斷第一會(huì)話信息與用戶當(dāng)前操作的第二會(huì)話信息是否相同;
若第一會(huì)話信息與第二會(huì)話信息不相同,則不執(zhí)行用戶的操作請(qǐng)求。
可選的,還包括:
若第一服務(wù)器不具有用戶的權(quán)限信息,則注銷用戶在第一服務(wù)器上的登錄信息。
可選的,還包括:
若第一會(huì)話信息與第二會(huì)話信息相同,則執(zhí)行用戶的操作請(qǐng)求。
可選的,若所述第一會(huì)話信息與所述第二會(huì)話信息不相同,還包括:
從所述第一服務(wù)器上刪除所述用戶的權(quán)限信息并注銷所述用戶在所述第一服務(wù)器上的登錄信息。
可選的,第一服務(wù)器接收用戶的操作請(qǐng)求之前,還包括:
第一服務(wù)器獲取用戶的登錄請(qǐng)求并建立用戶的第二會(huì)話信息;
第一服務(wù)器查詢存儲(chǔ)區(qū)中是否存有用戶的會(huì)話信息;
若存儲(chǔ)區(qū)中存有用戶的會(huì)話信息,則判斷第二會(huì)話信息與存儲(chǔ)區(qū)中保存的用戶的會(huì)話信息是否相同;
若不相同,則將第二會(huì)話信息作為用戶在存儲(chǔ)區(qū)中的會(huì)話信息。
可選的,還包括:
若存儲(chǔ)區(qū)中未存有用戶的會(huì)話信息,則將用戶的第二會(huì)話信息保存至存儲(chǔ)區(qū)。
可選的,還包括:
更新用戶在存儲(chǔ)區(qū)中的會(huì)話信息的生效時(shí)間;
若用戶在存儲(chǔ)區(qū)中的會(huì)話信息的生效時(shí)間在設(shè)定時(shí)間段內(nèi)沒有更新,則刪除用戶在存儲(chǔ)區(qū)中的會(huì)話信息。
本發(fā)明實(shí)施例提供一種防止用戶重復(fù)登錄的服務(wù)器,服務(wù)器為集群WEB環(huán)境中用戶登錄成功的任意一個(gè)服務(wù)器,包括:
接收模塊,用于接收用戶的操作請(qǐng)求;
第一判斷模塊,用于判斷所述服務(wù)器是否具有用戶的權(quán)限信息,若具有用戶的權(quán)限信息,則從存儲(chǔ)區(qū)獲取用戶的第一會(huì)話信息,第一會(huì)話信息為存儲(chǔ)區(qū)中存儲(chǔ)的用戶最后一次成功登錄的會(huì)話信息;
第二判斷模塊,用于判斷第一會(huì)話信息與用戶當(dāng)前操作的第二會(huì)話信息是否相同;若第一會(huì)話信息與第二會(huì)話信息不相同,則不執(zhí)行所述用戶的操作請(qǐng)求。
可選的,第一判斷模塊具體用于:
若服務(wù)器不具有用戶的權(quán)限信息,則注銷用戶在服務(wù)器上的登錄信息。
可選的,第二判斷模塊還用于:
若第一會(huì)話信息與第二會(huì)話信息相同,則執(zhí)行用戶的操作請(qǐng)求。
可選的,還包括:
處理模塊,用于若第一會(huì)話信息與第二會(huì)話信息不相同,則從服務(wù)器上刪除用戶的權(quán)限信息并注銷用戶在服務(wù)器上的登錄信息。
可選的,還包括:
登錄模塊,用于獲取用戶的登錄請(qǐng)求并建立用戶的第二會(huì)話信息;
查詢存儲(chǔ)區(qū)中是否存有用戶的會(huì)話信息;
若存儲(chǔ)區(qū)中存有用戶的會(huì)話信息,則判斷第二會(huì)話信息與存儲(chǔ)區(qū)中保存的用戶的會(huì)話信息是否相同;
若不相同,則將第二會(huì)話信息作為用戶在存儲(chǔ)區(qū)中的會(huì)話信息。
可選的,登錄模塊還用于:
若存儲(chǔ)區(qū)中未存有用戶的會(huì)話信息,則將用戶的第二會(huì)話信息保存至存儲(chǔ)區(qū)。
可選的,登錄模塊還用于:
更新用戶在存儲(chǔ)區(qū)中的會(huì)話信息的生效時(shí)間;
若用戶在存儲(chǔ)區(qū)中的會(huì)話信息的生效時(shí)間在設(shè)定時(shí)間段內(nèi)沒有更新,則刪除用戶在存儲(chǔ)區(qū)中的會(huì)話信息。
從上述內(nèi)容可看出:本發(fā)明實(shí)施例提供一種防止用戶重復(fù)登錄的方法和服務(wù)器,應(yīng)用于集群WEB環(huán)境中,第一服務(wù)器接收用戶的操作請(qǐng)求,第一服務(wù)器為集群WEB環(huán)境中用戶登錄成功的任意一個(gè)服務(wù)器;第一服務(wù)器判斷是否具有用戶的權(quán)限信息,若具有用戶的權(quán)限信息,則從存儲(chǔ)區(qū)獲取用戶的第一會(huì)話信息,第一會(huì)話信息為存儲(chǔ)區(qū)中存儲(chǔ)的用戶最后一次成功登錄的會(huì)話信息;第一服務(wù)器判斷第一會(huì)話信息與用戶當(dāng)前操作的第二會(huì)話信息是否相同;若第一會(huì)話信息與第二會(huì)話信息不相同,則不執(zhí)行用戶的操作請(qǐng)求。
由于用戶每次登錄集群WEB環(huán)境中后,根據(jù)負(fù)載均衡用戶可能分配到不同的服務(wù)器上,故用戶可能在不同的服務(wù)器上成功登錄;用戶一旦在服務(wù)器上登錄成功,登錄成功的服務(wù)器都會(huì)接收用戶操作請(qǐng)求,接收到用戶操作請(qǐng)求的服務(wù)器首先判斷自身是否包括用戶的權(quán)限信息,若服務(wù)器包含用戶的權(quán)限信息,則獲取存儲(chǔ)區(qū)中用戶的會(huì)話信息;由于存儲(chǔ)區(qū)中對(duì)于同一個(gè)用戶只存儲(chǔ)該用戶最后一次登錄成功的會(huì)話信息,故通過比較用戶當(dāng)前操作的會(huì)話信息和存儲(chǔ)區(qū)中用戶的會(huì)話信息可以判斷此時(shí)用戶是否在最后一次登錄成功的服務(wù)器上操作,若用戶當(dāng)前操作的會(huì)話信息和存儲(chǔ)區(qū)中用戶的會(huì)話信息不相同,說明此時(shí)用戶在其它服務(wù)器上登錄了,并且當(dāng)前不是在最后一次登錄成功的服務(wù)器上操作,故用戶當(dāng)前操作不能執(zhí)行,從而使得用戶只能在最后一次登錄成功的服務(wù)器上執(zhí)行操作,避免了用戶同時(shí)在多個(gè)服務(wù)器上登錄并操作造成的系統(tǒng)性能問題以及用戶賬號(hào)安全問題。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹。
圖1為本發(fā)明實(shí)施例提供了一種系統(tǒng)架構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例提供的一種防止用戶重復(fù)登錄的方法流程示意圖;
圖3為本發(fā)明實(shí)施例提供的一種用戶登錄的方法流程示意圖;
圖4為本發(fā)明實(shí)施例提供的一種防止用戶重復(fù)登錄的服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1示例性示出了本發(fā)明實(shí)施例適用的一種系統(tǒng)架構(gòu)示意圖,如圖1所示,本發(fā)明實(shí)施例適用的系統(tǒng)架構(gòu)包括終端101、服務(wù)器102、服務(wù)器103、服務(wù)器104、數(shù)據(jù)庫105,通過無線連接或有線連接或其他方式連接。
終端可以指用戶設(shè)備(User Equipment,簡(jiǎn)稱UE)、接入終端、用戶單元、用戶站、移動(dòng)站、移動(dòng)臺(tái)、遠(yuǎn)方站、遠(yuǎn)程終端、移動(dòng)設(shè)備、用戶終端、終端、無線通信設(shè)備、用戶代理或用戶裝置。接入終端可以是蜂窩電話、無繩電話、會(huì)話啟動(dòng)協(xié)議(Session Initiation Protocol,簡(jiǎn)稱SIP)電話、無線本地環(huán)路(Wireless Local Loop,簡(jiǎn)稱WLL)站、個(gè)人數(shù)字處理(Personal Digital Assistant,簡(jiǎn)稱PDA)、具有無線通信功能的手持設(shè)備、計(jì)算設(shè)備或連接到無線調(diào)制解調(diào)器的其它處理設(shè)備、車載設(shè)備、可穿戴設(shè)備,未來5G網(wǎng)絡(luò)中的終端設(shè)備等。
服務(wù)器102、服務(wù)器103和服務(wù)器104可以是用于與終端進(jìn)行通信的設(shè)備,例如,可以是具有信息處理功能的計(jì)算機(jī)設(shè)備,如Web集群中運(yùn)行同一個(gè)web應(yīng)用的服務(wù)器。Redis集群可以用來存儲(chǔ)WEB集群中各服務(wù)器上用戶登錄的會(huì)話信息,對(duì)于一個(gè)用戶,Redis集群只保存用戶在WEB集群中一個(gè)服務(wù)器上的會(huì)話信息;Redis集群是一個(gè)實(shí)現(xiàn)分布式并且允許單點(diǎn)故障的Redis高級(jí)版本,Redis集群沒有最重要或者說中心節(jié)點(diǎn),這個(gè)版本最主要的一個(gè)目標(biāo)是設(shè)計(jì)一個(gè)線性可伸縮的功能,Redis集群為了數(shù)據(jù)的一致性可能犧牲部分允許單點(diǎn)故障的功能,所以當(dāng)網(wǎng)絡(luò)故障和節(jié)點(diǎn)發(fā)生故障時(shí)這個(gè)系統(tǒng)會(huì)盡力去保證數(shù)據(jù)的一致性和有效性。
圖2示例性示出了本發(fā)明實(shí)施例提供的一種防止用戶重復(fù)登錄的方法流程示意圖。
步驟S201,第一服務(wù)器接收用戶的操作請(qǐng)求,第一服務(wù)器為集群WEB環(huán)境中用戶登錄成功的任意一個(gè)服務(wù)器;
步驟S202,第一服務(wù)器判斷是否具有用戶的權(quán)限信息,若具有用戶的權(quán)限信息,則從存儲(chǔ)區(qū)獲取用戶的第一會(huì)話信息,第一會(huì)話信息為存儲(chǔ)區(qū)中存儲(chǔ)的用戶最后一次成功登錄的會(huì)話信息;
步驟S203,第一服務(wù)器判斷第一會(huì)話信息與用戶當(dāng)前操作的第二會(huì)話信息是否相同;
步驟S204,若第一會(huì)話信息與第二會(huì)話信息不相同,則不執(zhí)行用戶的操作請(qǐng)求。
具體實(shí)施中,集群WEB環(huán)境由多個(gè)同時(shí)運(yùn)行同一個(gè)WEB應(yīng)用的服務(wù)器組成,在外界看來就像一個(gè)服務(wù)器一樣,這多臺(tái)服務(wù)器共同來為客戶提供更高性能的服務(wù)。集群更標(biāo)準(zhǔn)的定義是:一組相互獨(dú)立的服務(wù)器在網(wǎng)絡(luò)中表現(xiàn)為單一的系統(tǒng),并以單一系統(tǒng)的模式加以管理,此單一系統(tǒng)為客戶工作站提供高可靠性的服務(wù)。用戶登錄集群WEB環(huán)境中后,域名系統(tǒng)(Domain Name System,簡(jiǎn)稱DNS)根據(jù)負(fù)載均衡實(shí)現(xiàn)合理的任務(wù)分配,使這些服務(wù)器不會(huì)出現(xiàn)因某一臺(tái)超負(fù)荷、而其他的服務(wù)器卻沒有充分發(fā)揮處理能力的情況。負(fù)載均衡有兩個(gè)方面的含義:首先,把大量的并發(fā)訪問或數(shù)據(jù)流量分擔(dān)到多臺(tái)節(jié)點(diǎn)上分別處理,減少用戶等待響應(yīng)的時(shí)間;其次,單個(gè)高負(fù)載的運(yùn)算分擔(dān)到多臺(tái)節(jié)點(diǎn)上做并行處理,每個(gè)節(jié)點(diǎn)設(shè)備處理結(jié)束后,將結(jié)果匯總,再返回給用戶,使得信息系統(tǒng)處理能力可以得到大幅度提高。權(quán)限信息具體包括系統(tǒng)展示給用戶的菜單和這些菜單包含的各種操作資源;用戶成功登錄一個(gè)服務(wù)器之后,該服務(wù)器中將存有用戶的權(quán)限信息;當(dāng)用戶注銷登錄、關(guān)閉瀏覽器或計(jì)算機(jī)時(shí),服務(wù)器中的用戶權(quán)限信息將自動(dòng)清除。
為了更清楚的介紹上述方法流程,本發(fā)明實(shí)施例提供以下示例。
由于集群WEB環(huán)境中包含多個(gè)服務(wù)器,從而同一用戶可能在同一時(shí)間在不同的服務(wù)器上同時(shí)登錄,比如,用戶1進(jìn)入登錄界面,輸入賬號(hào)和密碼后提交,DNS根據(jù)負(fù)載均衡將用戶1分配在服務(wù)器A上,則用戶1在服務(wù)器A上成功登錄;用戶1在沒有注銷服務(wù)器A上登錄的情況下,再次進(jìn)入登錄界面登錄時(shí),DNS根據(jù)負(fù)載均衡可能將用戶1分配在服務(wù)器B上,故用戶1在服務(wù)器B上也登錄成功,此時(shí)集群WEB環(huán)境中用戶登錄成功的服務(wù)器包括服務(wù)器A和服務(wù)器B;服務(wù)器A和服務(wù)器B均能收到用戶1的操作請(qǐng)求;服務(wù)器A和服務(wù)器B均接收到用戶1的操作請(qǐng)求之后,服務(wù)器A判斷自身是否具有用戶1的權(quán)限信息,服務(wù)器B中的判斷自身是否具有用戶1的權(quán)限信息,由于用戶1在服務(wù)器A和服務(wù)器B上都登錄成功,則服務(wù)器A和服務(wù)器B都具有用戶1的權(quán)限信息,故服務(wù)器A和服務(wù)器B都從存儲(chǔ)區(qū)獲取用戶1的會(huì)話信息;由于用戶1最后是在服務(wù)器B上登錄成功,所示存儲(chǔ)區(qū)中保存的是用戶成功登錄服務(wù)器B的會(huì)話信息;當(dāng)服務(wù)器A將獲取的存儲(chǔ)區(qū)中用戶1的會(huì)話信息和用戶1當(dāng)前操作的會(huì)話信息進(jìn)行比較,得到用戶1當(dāng)前操作的會(huì)話信息與存儲(chǔ)區(qū)中用戶1的會(huì)話信息不相同,說明用戶1在其它地方登錄了,所以不執(zhí)行用戶1的操作請(qǐng)求。若第一會(huì)話信息與第二會(huì)話信息相同,則執(zhí)行用戶的操作請(qǐng)求,服務(wù)器B將獲取的存儲(chǔ)區(qū)中用戶1的會(huì)話信息和用戶1當(dāng)前操作的會(huì)話信息進(jìn)行比較,得出用戶1當(dāng)前操作的會(huì)話信息與存儲(chǔ)區(qū)中用戶1的會(huì)話信息相同,說明用戶1最后在服務(wù)器B上登錄成功,所以執(zhí)行用戶1的操作請(qǐng)求。由此用戶雖然在不同的服務(wù)器上同時(shí)登錄,但是用戶只能在一個(gè)服務(wù)器上進(jìn)行操作,一方面避免了多個(gè)相同用戶同時(shí)操作對(duì)系統(tǒng)造成壓力,另一方面也避免了多人同時(shí)操作同一賬戶帶來的操作沖突。
可選的,若所述第一會(huì)話信息與所述第二會(huì)話信息不相同,還包括:從第一服務(wù)器上刪除用戶的權(quán)限信息并注銷用戶在第一服務(wù)器上的登錄信息。
具體實(shí)施中,服務(wù)器A確定用戶1當(dāng)前操作的會(huì)話信息與存儲(chǔ)區(qū)中用戶1的會(huì)話信息不相同之后,服務(wù)器A會(huì)將服務(wù)器A中所包含的用戶1的權(quán)限信息刪除并注銷用戶1在服務(wù)器A上的登錄;具體實(shí)施中,還可以是服務(wù)器A只將用戶1在服務(wù)器A上的權(quán)限信息刪除,并不注銷用戶1在服務(wù)器A上的登錄??蛇x的,還包括:若第一服務(wù)器不具有用戶的權(quán)限信息,則注銷用戶在第一服務(wù)器上的登錄信息。具體實(shí)施中,當(dāng)用戶1再次向服務(wù)器A發(fā)送操作請(qǐng)求時(shí),服務(wù)器A判斷是否具有用戶1的權(quán)限信息,此時(shí)服務(wù)器A不具有用戶1的權(quán)限信息,之后再注銷用戶1在服務(wù)器A上的登錄;由此防止了同一用戶在不同的服務(wù)器上同時(shí)登錄并操作。
上述實(shí)施例為用戶已成功登錄多個(gè)服務(wù)器之后,針對(duì)該用戶的操作請(qǐng)求的處理,在上述實(shí)施例中一方面避免了多個(gè)服務(wù)器對(duì)用戶的同一個(gè)操作請(qǐng)求的處理;另一方面,也實(shí)現(xiàn)了在執(zhí)行操作請(qǐng)求的過程中,注銷用戶在其他服務(wù)器上的登錄信息,進(jìn)一步減輕了其他服務(wù)器在后續(xù)對(duì)該用戶的操作請(qǐng)求的處理,減少了網(wǎng)絡(luò)通訊資源的冗余占用。
為進(jìn)一步介紹存儲(chǔ)區(qū)中保存的是用戶最后一次成功登錄的會(huì)話信息,以如下實(shí)施例介紹用戶進(jìn)行登錄請(qǐng)求的具體實(shí)現(xiàn)過程,圖3示例性示出了本發(fā)明實(shí)施例提供的一種用戶登錄的方法流程示意圖。
步驟S301,第一服務(wù)器獲取用戶的登錄請(qǐng)求
步驟S302,第一服務(wù)器建立用戶的第二會(huì)話信息;
步驟S303,第一服務(wù)器查詢存儲(chǔ)區(qū)中用戶的會(huì)話信息;
步驟S304,判斷存儲(chǔ)區(qū)中是否存有用戶的會(huì)話信息,若是,則執(zhí)行步驟S305否則執(zhí)行步驟S306;
步驟S305,判斷第二會(huì)話信息與存儲(chǔ)區(qū)中保存的用戶的會(huì)話信息是否相同,若是,則執(zhí)行步驟S307,否則執(zhí)行步驟S308;
步驟S306,將用戶的第二會(huì)話信息保存至存儲(chǔ)區(qū);
步驟S307,存儲(chǔ)區(qū)繼續(xù)保存用戶的會(huì)話信息;
步驟S308,將第二會(huì)話信息作為用戶在存儲(chǔ)區(qū)中的會(huì)話信息。
具體實(shí)施中,服務(wù)器在獲取用戶的登錄請(qǐng)求后,服務(wù)器將建立用戶的會(huì)話和每個(gè)會(huì)話對(duì)應(yīng)的會(huì)話信息,會(huì)話信息可以是sessionid,一個(gè)用戶成功登錄一個(gè)服務(wù)器后對(duì)應(yīng)特定的會(huì)話信息,不同的用戶在不同的服務(wù)器上登陸后得到的會(huì)話信息都是不一樣的;存儲(chǔ)區(qū)可以是Redis集群或其他形式的存儲(chǔ)裝置;
本發(fā)明實(shí)施例提供一種服務(wù)器將用戶的會(huì)話信息保存至存儲(chǔ)區(qū)的示例,比如,設(shè)定WEB集群中有服務(wù)器A和服務(wù)器B,用戶1發(fā)送登錄請(qǐng)求,分為以下幾種情況:
情況一、用戶1進(jìn)入登錄界面輸入賬號(hào)密碼,若DNS根據(jù)負(fù)載均衡將用戶1分配在服務(wù)器A或服務(wù)器B時(shí),則用戶1在服務(wù)器A或服務(wù)器B上登錄成功,服務(wù)器A或服務(wù)器B查詢存儲(chǔ)區(qū)中用戶1的會(huì)話信息后,得到存儲(chǔ)區(qū)中不包含用戶1的會(huì)話信息,則存儲(chǔ)區(qū)將用戶1在服務(wù)器A或服務(wù)器B上的會(huì)話信息保存至存儲(chǔ)區(qū)。
情況二、當(dāng)用戶1正在服務(wù)器A上登錄,此時(shí)存儲(chǔ)區(qū)中保存的是用戶1在服務(wù)器A上的會(huì)話信息,用戶1再次進(jìn)入登錄界面輸入賬號(hào)密碼,若DNS根據(jù)負(fù)載均衡將用戶1分配在服務(wù)器B時(shí),則用戶1在服務(wù)器A和服務(wù)器B上同時(shí)登錄成功,服務(wù)器B查詢存儲(chǔ)區(qū)中用戶1的會(huì)話信息后,得到存儲(chǔ)區(qū)中用戶1的會(huì)話信息與用戶1在服務(wù)器B上的會(huì)話信息不一致,則存儲(chǔ)區(qū)先刪除已保存的用戶1在服務(wù)器A上的會(huì)話信息,再保存用戶1在服務(wù)器B上的會(huì)話信息;
情況三、當(dāng)用戶1正在服務(wù)器A上登錄,此時(shí)存儲(chǔ)區(qū)中保存的是用戶1在服務(wù)器A上的會(huì)話信息,用戶1再次進(jìn)入登錄界面輸入賬號(hào)密碼,若DNS根據(jù)負(fù)載均衡將用戶1分配在服務(wù)器A時(shí),則用戶1仍舊在服務(wù)器A上登錄,服務(wù)器A查詢存儲(chǔ)區(qū)中用戶1的會(huì)話信息后,得到存儲(chǔ)區(qū)中用戶1的會(huì)話信息與用戶1在服務(wù)器A上的會(huì)話信息一致,則存儲(chǔ)區(qū)繼續(xù)保存用戶1在服務(wù)器A上的會(huì)話信息;
情況四、當(dāng)用戶1在服務(wù)器A上成功登錄后關(guān)閉瀏覽器或者計(jì)算機(jī),此時(shí)存儲(chǔ)區(qū)中保存的是用戶1在服務(wù)器A上的會(huì)話信息,用戶1再次進(jìn)入登錄界面輸入賬號(hào)密碼,此時(shí)無論DNS將用戶1分配在服務(wù)器A還是服務(wù)器B上,服務(wù)器A或服務(wù)器B會(huì)給用戶1建立新的會(huì)話信息,此時(shí)服務(wù)器A或服務(wù)器B查詢存儲(chǔ)區(qū)后,存儲(chǔ)區(qū)中用戶1的會(huì)話信息與服務(wù)器A或服務(wù)器B上用戶1的會(huì)話信息不一致,則存儲(chǔ)區(qū)先清除已保存的用戶1在服務(wù)器A上的會(huì)話信息,再保存用戶1在服務(wù)器A或服務(wù)器B上的會(huì)話信息。
情況五、當(dāng)用戶1在服務(wù)器A上正常注銷登錄后沒有關(guān)閉瀏覽器時(shí),瀏覽器在用戶正常注銷登錄后一段時(shí)間內(nèi)保存用戶1的會(huì)話信息,此時(shí)存儲(chǔ)區(qū)中保存的是用戶1在服務(wù)器A上的會(huì)話信息,這段時(shí)間內(nèi)用戶1進(jìn)入原瀏覽器頁面輸入賬號(hào)密碼,若DNS根據(jù)負(fù)載均衡將用戶1分配在服務(wù)器A時(shí),則瀏覽器將保存的用戶1的會(huì)話信息提交給服務(wù)器A,用戶1仍舊在服務(wù)器A上登錄并且用戶1在服務(wù)器A上的會(huì)話信息不發(fā)生改變,服務(wù)器A查詢存儲(chǔ)區(qū)中用戶1的會(huì)話信息后,得到存儲(chǔ)區(qū)中用戶1的會(huì)話信息與用戶1在服務(wù)器A上的會(huì)話信息一致,則存儲(chǔ)區(qū)繼續(xù)保存用戶1在服務(wù)器A上的會(huì)話信息;
情況六、當(dāng)用戶1在服務(wù)器A上正常注銷登錄后沒有關(guān)閉瀏覽器時(shí),此時(shí)存儲(chǔ)區(qū)中保存的是用戶1在服務(wù)器A上的會(huì)話信息,用戶1再次進(jìn)入原瀏覽器頁面輸入賬號(hào)密碼,若DNS根據(jù)負(fù)載均衡將用戶1分配在服務(wù)器B時(shí),則用戶1服務(wù)器B上登錄成功,服務(wù)器B查詢存儲(chǔ)區(qū)中用戶1的會(huì)話信息后,得到存儲(chǔ)區(qū)中用戶1的會(huì)話信息與用戶1在服務(wù)器B上的會(huì)話信息不一致,則存儲(chǔ)區(qū)先清除已保存的用戶1在服務(wù)器A上的會(huì)話信息,再保存用戶1在服務(wù)器B上的會(huì)話信息。上述實(shí)施例中,存儲(chǔ)區(qū)只保存用戶最后一次成功登錄的會(huì)話信息,從而在后續(xù)用戶操作中,通過比較用戶操作的會(huì)話信息與存儲(chǔ)區(qū)中保存的用戶的會(huì)話信息可以判斷用戶是否重復(fù)登錄,從而使得用戶只能在最后一次成功登錄的服務(wù)器上操作。
可選的,還包括:
更新用戶在存儲(chǔ)區(qū)中的會(huì)話信息的生效時(shí)間;
若用戶在存儲(chǔ)區(qū)中的會(huì)話信息的生效時(shí)間在設(shè)定時(shí)間段內(nèi)沒有更新,則刪除用戶在存儲(chǔ)區(qū)中的會(huì)話信息。
具體實(shí)施中,存儲(chǔ)區(qū)中存儲(chǔ)的用戶的會(huì)話信息具有時(shí)效性,用戶的會(huì)話信息的生效時(shí)間可以根據(jù)具體情況進(jìn)行設(shè)定。比如設(shè)定存儲(chǔ)區(qū)中用戶的會(huì)話信息生效時(shí)間是24小時(shí),若服務(wù)器A將用戶1的會(huì)話信息保存到存儲(chǔ)區(qū)中24小時(shí)之后,服務(wù)器A或其他服務(wù)器沒有更新了存儲(chǔ)區(qū)中用戶1的會(huì)話信息,則存儲(chǔ)區(qū)中用戶1的會(huì)話信息將失效并刪除。
從上述內(nèi)容可看出:本發(fā)明實(shí)施例提供一種防止用戶重復(fù)登錄的方法和服務(wù)器,應(yīng)用于集群WEB環(huán)境中,第一服務(wù)器接收用戶的操作請(qǐng)求,第一服務(wù)器為集群WEB環(huán)境中用戶登錄成功的任意一個(gè)服務(wù)器;第一服務(wù)器判斷是否具有用戶的權(quán)限信息,若具有用戶的權(quán)限信息,則從存儲(chǔ)區(qū)獲取用戶的第一會(huì)話信息,第一會(huì)話信息為存儲(chǔ)區(qū)中存儲(chǔ)的用戶最后一次成功登錄的會(huì)話信息;第一服務(wù)器判斷第一會(huì)話信息與用戶當(dāng)前操作的第二會(huì)話信息是否相同;若第一會(huì)話信息與第二會(huì)話信息不相同,則不執(zhí)行用戶的操作請(qǐng)求。
由于用戶每次登錄集群WEB環(huán)境中后,根據(jù)負(fù)載均衡用戶可能分配到不同的服務(wù)器上,故用戶可能在不同的服務(wù)器上成功登錄;用戶一旦在服務(wù)器上登錄成功,登錄成功的服務(wù)器都會(huì)接收用戶操作請(qǐng)求,接收到用戶操作請(qǐng)求的服務(wù)器首先判斷自身是否包括用戶的權(quán)限信息,若服務(wù)器包含用戶的權(quán)限信息,則獲取存儲(chǔ)區(qū)中用戶的會(huì)話信息;由于存儲(chǔ)區(qū)中對(duì)于同一個(gè)用戶只存儲(chǔ)該用戶最后一次登錄成功的會(huì)話信息,故通過比較用戶當(dāng)前操作的會(huì)話信息和存儲(chǔ)區(qū)中用戶的會(huì)話信息可以判斷此時(shí)用戶是否在最后一次登錄成功的服務(wù)器上操作,若用戶當(dāng)前操作的會(huì)話信息和存儲(chǔ)區(qū)中用戶的會(huì)話信息不相同,說明此時(shí)用戶在其它服務(wù)器上登錄了,并且當(dāng)前不是在最后一次登錄成功的服務(wù)器上操作,故用戶當(dāng)前操作不能執(zhí)行,從而使得用戶只能在最后一次登錄成功的服務(wù)器上執(zhí)行操作,避免了用戶同時(shí)在多個(gè)服務(wù)器上登錄并操作造成的系統(tǒng)性能問題以及用戶賬號(hào)安全問題。
圖4示例性示出了本發(fā)明實(shí)施例提供的一種防止用戶重復(fù)登錄的服務(wù)器的結(jié)構(gòu)示意圖。
基于相同構(gòu)思,本發(fā)明實(shí)施例提供的一種防止用戶重復(fù)登錄的服務(wù)器的結(jié)構(gòu)示意圖,如圖4所示,該服務(wù)器包括登錄模塊401、接收模塊402、第一判斷模塊403、第二判斷模塊404和處理模塊405;其中:
接收模塊402,用于接收用戶的操作請(qǐng)求;
第一判斷模塊403,用于判斷所述服務(wù)器是否具有用戶的權(quán)限信息,若具有用戶的權(quán)限信息,則從存儲(chǔ)區(qū)獲取用戶的第一會(huì)話信息,第一會(huì)話信息為存儲(chǔ)區(qū)中存儲(chǔ)的用戶最后一次成功登錄的會(huì)話信息;
第二判斷模塊404,用于判斷第一會(huì)話信息與用戶當(dāng)前操作的第二會(huì)話信息是否相同;若第一會(huì)話信息與第二會(huì)話信息不相同,則不執(zhí)行所述用戶的操作請(qǐng)求。
可選的,第一判斷模塊403具體用于:
若服務(wù)器不具有用戶的權(quán)限信息,則注銷用戶在服務(wù)器上的登錄信息。
可選的,第二判斷模塊404還用于:
若第一會(huì)話信息與第二會(huì)話信息相同,則執(zhí)行用戶的操作請(qǐng)求。
可選的,還包括:
處理模塊405,用于若第一會(huì)話信息與第二會(huì)話信息不相同,則從服務(wù)器上刪除用戶的權(quán)限信息并注銷用戶在服務(wù)器上的登錄信息。
可選的,還包括:
登錄模塊401,用于獲取用戶的登錄請(qǐng)求并建立用戶的第二會(huì)話信息;
查詢存儲(chǔ)區(qū)中是否存有用戶的會(huì)話信息;
若存儲(chǔ)區(qū)中存有用戶的會(huì)話信息,則判斷第二會(huì)話信息與存儲(chǔ)區(qū)中保存的用戶的會(huì)話信息是否相同;
若不相同,則將第二會(huì)話信息作為用戶在存儲(chǔ)區(qū)中的會(huì)話信息。
可選的,登錄模塊401還用于:
若存儲(chǔ)區(qū)中未存有用戶的會(huì)話信息,則將用戶的第二會(huì)話信息保存至存儲(chǔ)區(qū)。
可選的,登錄模塊401還用于:
更新用戶在存儲(chǔ)區(qū)中的會(huì)話信息的生效時(shí)間;
若用戶在存儲(chǔ)區(qū)中的會(huì)話信息的生效時(shí)間在設(shè)定時(shí)間段內(nèi)沒有更新,則刪除用戶在存儲(chǔ)區(qū)中的會(huì)話信息。
從上述內(nèi)容可看出:本發(fā)明實(shí)施例提供一種防止用戶重復(fù)登錄的方法和服務(wù)器,應(yīng)用于集群WEB環(huán)境中,第一服務(wù)器接收用戶的操作請(qǐng)求,第一服務(wù)器為集群WEB環(huán)境中用戶登錄成功的任意一個(gè)服務(wù)器;第一服務(wù)器判斷是否具有用戶的權(quán)限信息,若具有用戶的權(quán)限信息,則從存儲(chǔ)區(qū)獲取用戶的第一會(huì)話信息,第一會(huì)話信息為存儲(chǔ)區(qū)中存儲(chǔ)的用戶最后一次成功登錄的會(huì)話信息;第一服務(wù)器判斷第一會(huì)話信息與用戶當(dāng)前操作的第二會(huì)話信息是否相同;若第一會(huì)話信息與第二會(huì)話信息不相同,則不執(zhí)行用戶的操作請(qǐng)求。
由于用戶每次登錄集群WEB環(huán)境中后,根據(jù)負(fù)載均衡用戶可能分配到不同的服務(wù)器上,故用戶可能在不同的服務(wù)器上成功登錄;用戶一旦在服務(wù)器上登錄成功,登錄成功的服務(wù)器都會(huì)接收用戶操作請(qǐng)求,接收到用戶操作請(qǐng)求的服務(wù)器首先判斷自身是否包括用戶的權(quán)限信息,若服務(wù)器包含用戶的權(quán)限信息,則獲取存儲(chǔ)區(qū)中用戶的會(huì)話信息;由于存儲(chǔ)區(qū)中對(duì)于同一個(gè)用戶只存儲(chǔ)該用戶最后一次登錄成功的會(huì)話信息,故通過比較用戶當(dāng)前操作的會(huì)話信息和存儲(chǔ)區(qū)中用戶的會(huì)話信息可以判斷此時(shí)用戶是否在最后一次登錄成功的服務(wù)器上操作,若用戶當(dāng)前操作的會(huì)話信息和存儲(chǔ)區(qū)中用戶的會(huì)話信息不相同,說明此時(shí)用戶在其它服務(wù)器上登錄了,并且當(dāng)前不是在最后一次登錄成功的服務(wù)器上操作,故用戶當(dāng)前操作不能執(zhí)行,從而使得用戶只能在最后一次登錄成功的服務(wù)器上執(zhí)行操作,避免了用戶同時(shí)在多個(gè)服務(wù)器上登錄并操作造成的系統(tǒng)性能問題以及用戶賬號(hào)安全問題。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。