進(jìn)行保存,一方面,將票據(jù)保存在認(rèn)證系統(tǒng)的數(shù)據(jù)庫中,另一方面,將票據(jù)返回至用戶的客戶端中進(jìn)行保存。
[0051]此外,在賬號關(guān)系映射表中,根據(jù)應(yīng)用系統(tǒng)的標(biāo)識建立票據(jù)與用戶的賬號信息的映射關(guān)系,實(shí)際是根據(jù)應(yīng)用系統(tǒng)的標(biāo)識建立票據(jù)與賬號信息中賬號名稱和密碼之間的映射關(guān)系。
[0052]另外,可以在賬號關(guān)系映射表中對應(yīng)于賬號名稱增加權(quán)限標(biāo)識,通過識別該權(quán)限標(biāo)識實(shí)現(xiàn)用戶在應(yīng)用系統(tǒng)中的權(quán)限控制,還可以在賬號關(guān)系映射表中增加或刪除用戶的賬號名稱和密碼,從而增加或禁止用戶的訪問權(quán)限,以減少系統(tǒng)管理員在不同的應(yīng)用系統(tǒng)中增加、刪除或修改用戶權(quán)限的時間。
[0053]步驟S104:根據(jù)票據(jù)與應(yīng)用系統(tǒng)的標(biāo)識,在賬號關(guān)系映射表中查詢用戶在應(yīng)用系統(tǒng)的賬號信息。
[0054]在賬號關(guān)系映射表中,根據(jù)票據(jù)能夠查詢到用戶想要登錄的應(yīng)用系統(tǒng)的賬號名稱和密碼。
[0055]步驟S105:根據(jù)查詢到的賬號信息登錄應(yīng)用系統(tǒng)。
[0056]在用戶通過客戶端登錄應(yīng)用系統(tǒng)的過程中,根據(jù)票據(jù)在賬號關(guān)系映射表中查詢對應(yīng)的賬號名稱和密碼,根據(jù)查詢到的賬號名稱和密碼登錄應(yīng)用系統(tǒng)。
[0057]上述步驟S102-S105詳細(xì)說明了用戶通過客戶端首次登陸應(yīng)用系統(tǒng)的過程,當(dāng)該用戶通過同一客戶端再次登陸該應(yīng)用系統(tǒng)時,包括以下內(nèi)容:
[0058]查詢客戶端的本地是否存有票據(jù);如果客戶端的本地存有票據(jù),說明該客戶端之前經(jīng)過認(rèn)證系統(tǒng)的認(rèn)證,此時,驗(yàn)證該票據(jù)的時效性,如果該票據(jù)未超過規(guī)定的時效時,通過認(rèn)證系統(tǒng)驗(yàn)證該票據(jù)是否正確,如果票據(jù)正確,則票據(jù)通過驗(yàn)證,用戶根據(jù)該票據(jù)登錄應(yīng)用系統(tǒng);如果客戶端的本地未存有票據(jù)或票據(jù)的已超過規(guī)定的時效性,說明用戶之前沒有經(jīng)過認(rèn)證系統(tǒng)的認(rèn)證或經(jīng)過認(rèn)證的票據(jù)已過時效性,則用戶需要重新登錄該應(yīng)用系統(tǒng),跳轉(zhuǎn)到認(rèn)證系統(tǒng)進(jìn)行認(rèn)證。
[0059]需要說明的是,本發(fā)明在客戶端和認(rèn)證系統(tǒng)端對票據(jù)進(jìn)行雙向驗(yàn)證,并從兩方面對票據(jù)進(jìn)行驗(yàn)證,一方面為票據(jù)的時效性,另一方面為票據(jù)的唯一性,且,先驗(yàn)證票據(jù)的時效性,如果票據(jù)已過時效性,則需要重新通過認(rèn)證系統(tǒng)進(jìn)行驗(yàn)證,票據(jù)通過時效性的驗(yàn)證后才驗(yàn)證其唯一性,只有通過時效性和唯一性兩方面的驗(yàn)證才有資格登錄應(yīng)用系統(tǒng),兩方面的具體驗(yàn)證過程如下:
[0060]1、時效性
[0061]在生成票據(jù)時,預(yù)設(shè)一個時間段作為票據(jù)的時效性,在用戶的客戶端驗(yàn)證票據(jù)的時效性時,根據(jù)生成票據(jù)時認(rèn)證系統(tǒng)的時間和客戶端的當(dāng)前時間,確定一個時間段,判斷確定出的時間段是否大于與預(yù)設(shè)的時間段,如果大于,判斷票據(jù)已過時效性;如果小于,則判斷票據(jù)未過時效性。
[0062]2、唯一性
[0063]唯一性是通過認(rèn)證系統(tǒng)進(jìn)行驗(yàn)證的,具體過程如下:
[0064](1)認(rèn)證系統(tǒng)查找其數(shù)據(jù)庫中是否存有上述票據(jù):如果有,驗(yàn)證票據(jù)的時效性;如果沒有,則重新登錄應(yīng)用系統(tǒng);
[0065]需要說明的是,本發(fā)明從兩個地方驗(yàn)證票據(jù)的時效性,一是在用戶的客戶端的本地進(jìn)行驗(yàn)證,二是在認(rèn)證系統(tǒng)中進(jìn)行驗(yàn)證。
[0066](2)認(rèn)證系統(tǒng)對票據(jù)的時效性進(jìn)行驗(yàn)證(驗(yàn)證過程參考時效性的驗(yàn)證):如果票據(jù)未過時效性,驗(yàn)證票據(jù)的正確性;如果票據(jù)的時效性已過,則重新登錄應(yīng)用系統(tǒng);
[0067](3)通過加密的密鑰解密票據(jù);如果不能解密票據(jù),則重新登錄應(yīng)用系統(tǒng);如果能解密票據(jù),解密出票據(jù)的設(shè)備標(biāo)識和IP,并驗(yàn)證與上傳票據(jù)的客戶端的設(shè)備標(biāo)識和上傳票據(jù)時的IP是否一致;如果一致,票據(jù)通過驗(yàn)證,用戶根據(jù)票據(jù)登錄應(yīng)用系統(tǒng);如果不一致,則重新登錄應(yīng)用系統(tǒng)。
[0068]Device ID和IP用于防止竊取票據(jù)信息,由于Device ID和IP都具有唯一性,因此,通過驗(yàn)證票據(jù)信息是否與發(fā)送票據(jù)的設(shè)備信息一致,就能確定票據(jù)是否正確,如果不一致,說明用戶與之前登錄的終端不同或用戶與之前登錄的IP不同,可能有外來設(shè)備竊取該票據(jù)登錄應(yīng)用系統(tǒng),認(rèn)證系統(tǒng)不予票據(jù)通過驗(yàn)證,需要重新登錄應(yīng)用系統(tǒng),如果一致,則說明用戶通過同一客戶端同一 IP再次登錄應(yīng)用系統(tǒng),即登錄狀態(tài)安全,認(rèn)證系統(tǒng)給予票據(jù)通過驗(yàn)證,用戶通過票據(jù)登錄對應(yīng)的應(yīng)用系統(tǒng)。
[0069]圖2示出了根據(jù)本發(fā)明實(shí)施例的多個應(yīng)用系統(tǒng)的單點(diǎn)登錄方法的情景流程。該情景以手機(jī)作為客戶端,用戶訪問手機(jī)中APP(手機(jī)的第三方應(yīng)用程序)的流程為例進(jìn)行說明。
[0070]如圖2所示,本發(fā)明實(shí)施例提供的多個應(yīng)用系統(tǒng)的單點(diǎn)登錄方法,包括:
[0071 ]步驟S200:用戶在APP內(nèi)點(diǎn)擊某個功能,訪問功能系統(tǒng)。
[0072]用戶想要使用APP內(nèi)的哪個功能就點(diǎn)擊該功能,發(fā)出訪問功能系統(tǒng)的請求。
[0073]步驟S201:判斷用戶是否登錄APP ;如果是,執(zhí)行步驟S202 ;如果否,則執(zhí)行步驟S205o
[0074]判斷用戶是否登錄APP,首先需要判斷APP本地內(nèi)是否存有票據(jù),如果APP本地內(nèi)有票據(jù),說明之前用戶成功登錄過APP,即通過認(rèn)證系統(tǒng)的認(rèn)證,此時,驗(yàn)證票據(jù)的時效性,如果票據(jù)未過時效性,認(rèn)定用戶登錄APP,也就是說,只有在APP本地內(nèi)存有票據(jù),且票據(jù)未過時效時,認(rèn)定用戶登錄APP。
[0075]步驟S202:用戶攜帶票據(jù)請求功能系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)。
[0076]步驟S203:認(rèn)證系統(tǒng)驗(yàn)證票據(jù)的有效性;如果有效,執(zhí)行步驟S204,如果無效,執(zhí)行步驟S205。
[0077]有效性的判斷參考票據(jù)的時效性和唯一性的判斷過程,故在此不再贅述。
[0078]步驟S204:調(diào)用后臺應(yīng)用系統(tǒng),返回請求的數(shù)據(jù),顯示功能系統(tǒng)的頁面。
[0079]在票據(jù)通過認(rèn)證系統(tǒng)的驗(yàn)證時,調(diào)用后臺應(yīng)用系統(tǒng),返回請求的數(shù)據(jù),顯示功能系統(tǒng)的頁面。
[0080]步驟S205:跳轉(zhuǎn)到登錄頁面,用戶填寫登錄所需信息,提交用戶信息到認(rèn)證系統(tǒng)。[0081 ]對于用戶APP本地未存有票據(jù)、用戶APP本地存有的票據(jù)時效性已過或票據(jù)未通過認(rèn)證系統(tǒng)的驗(yàn)證的情況,只要屬于前述三個情況中的任何一個,都需要跳轉(zhuǎn)到APP登錄頁面,用戶填寫登錄所需信息,提交用戶信息到認(rèn)證系統(tǒng)進(jìn)行認(rèn)證。
[0082]步驟S206:認(rèn)證系統(tǒng)對用戶的登錄信息進(jìn)行驗(yàn)證,如果驗(yàn)證通過,執(zhí)行步驟S207;如果驗(yàn)證未通過,執(zhí)行步驟S205。
[0083]認(rèn)證系統(tǒng)驗(yàn)證用戶的登錄信息是否正確,也就是驗(yàn)證用戶輸入的賬號名稱和密碼是否正確。
[0084]步驟S207:認(rèn)證系統(tǒng)生成票據(jù)保存在認(rèn)證系統(tǒng)本地和APP中,然后,執(zhí)行步驟S204。
[0085]如果用戶輸入的賬號名稱和密碼正確,通過認(rèn)證系統(tǒng)的驗(yàn)證,認(rèn)證系統(tǒng)生成票據(jù),生成的票據(jù)保存在認(rèn)證系統(tǒng)的數(shù)據(jù)庫中和返回給APP中進(jìn)行保存。
[0086]如果用戶輸入的賬號名稱和密碼不正確,則跳轉(zhuǎn)到登錄頁面,用戶重新填寫登錄
?目息。
[0087]需要說明的是,一個用戶訪問同一個ΑΡΡ內(nèi)的多個功能系統(tǒng)時,使用的是同一個票據(jù),在用戶登錄ΑΡΡ后,認(rèn)證系統(tǒng)為其生成一個票據(jù),用戶就能使用該票據(jù)訪問該ΑΡΡ內(nèi)的有權(quán)限的功能系統(tǒng),本發(fā)明是通過輸入的賬號名稱和密碼區(qū)別是否為同一用戶。
[0088]步驟S200?步驟S207為本發(fā)明提供的多應(yīng)用系統(tǒng)的單點(diǎn)登錄方法在一個應(yīng)用情景時的流程,該流程可以增強(qiáng)用戶登錄的安全性。
[0089]上述內(nèi)容詳細(xì)描述了本發(fā)明提供的多個應(yīng)用系統(tǒng)的單點(diǎn)登錄方法。與上述方法相對應(yīng),本發(fā)明還提供一種多個應(yīng)用系統(tǒng)的單點(diǎn)登錄裝置。
[0090]圖3示出了根據(jù)本發(fā)明實(shí)施例的多個應(yīng)用系統(tǒng)的單點(diǎn)登錄裝置的第一邏輯結(jié)構(gòu)。
[0091]如圖3所示,本發(fā)明實(shí)施例提供的多個應(yīng)用系統(tǒng)的單點(diǎn)登錄裝置300,包括賬號信息采集單元310、映射表建立單元320、跳轉(zhuǎn)認(rèn)證單元330、用戶信息上傳單元340、票據(jù)生成單元350、票據(jù)保存單元360、票據(jù)映射單元370、賬號信息查詢單元380和系統(tǒng)登錄單元390。
[0092]其中,賬號信息采集單元310用于通過采集接入認(rèn)證系統(tǒng)的各應(yīng)用系統(tǒng)中用戶的賬號信息。
[0093]映射表建立單元320用于基于用戶的賬號信息和各應(yīng)用系統(tǒng)的標(biāo)識建立賬號關(guān)系映射表。
[0094]跳轉(zhuǎn)認(rèn)證單元330用于在用戶通過客戶端首次登錄應(yīng)用系統(tǒng)時,將用戶跳轉(zhuǎn)到認(rèn)證系統(tǒng)進(jìn)行認(rèn)證。
[0095]用戶信息上傳單元340用于將用戶的賬號信息、與客戶端一一對應(yīng)的設(shè)備標(biāo)識加密上傳到認(rèn)證系統(tǒng)。
[0096]票據(jù)生成單元350用于在認(rèn)證系統(tǒng)解密后驗(yàn)證用戶的賬號信息正確時,將設(shè)備標(biāo)識、上傳時的IP和當(dāng)前系統(tǒng)時間用密鑰加密生成具有時效性的票據(jù);
[0097]票據(jù)保存單元360用于將票據(jù)保存到認(rèn)證系統(tǒng)的數(shù)據(jù)庫中,并將票據(jù)返回給用戶的客戶端。
[0098]票據(jù)映射單元370用于在賬號關(guān)系映射表中,根據(jù)應(yīng)用系統(tǒng)的標(biāo)識建立票據(jù)與用戶的賬號信息的映射關(guān)系。
[0099]賬號信息查詢單元380用于根據(jù)票據(jù)與應(yīng)用系統(tǒng)的標(biāo)識,在賬號關(guān)系映射表中查詢用戶在應(yīng)用系統(tǒng)的賬號信息。
[0100]系統(tǒng)登錄單元390用于根據(jù)查詢到的賬號信息登