專利名稱:令牌管理方法和系統的制作方法
技術領域:
本發明涉及互聯網技術領域,特別涉及一種令牌(Token)管理方法和系統。
背景技術:
在互聯網時代,某些平臺會將自身的服務封裝為接口,供第三方開發者使用。我們一般稱這些平臺為開放平臺。第三方開發者通過調用開放平臺提供的接口,可以很方便的導入用戶信息、提供充值等服務,為第三方開發者節約了大量的開發與運營成本。對開放平臺來說,因為要將用戶信息提供給第三方開發者,這就涉及到用戶的認證與授權。由此,OAuth認證授權協議應運而生。到目前為止,OAuth協議有兩個版本被大家廣泛使用,分別為OAuthl. Oa與0Auth2. O。在OAuthl. Oa中,應用方需要預 先申請一個RequestToken,在用戶授權后,應用方可以獲得一個授權過的Request Token,在后端將此Request Token更換為Access Token (令牌),此后均使用這個Access Token調用開放平臺的服務接口 ;在(^11訪2. O中,應用方直接要求用戶授權,在用戶授權后,應用方可以獲得一個授權過的Auth Code,在后端將此Auth Code更換為Access Token,此后均使用這個Access Token調用開放平臺的服務接口。可見,在OAuth的兩種授權流程中都涉及到Access Token 的申請。通過調用相應接口獲取Access Token的返回參數之一是expires_in,其表示設置的超時時間,若超時時間過期再使用Token去調用其他接口的話,會報錯說明Token過期。Token可以對應為一個應用一個,也可以對應為一個應用下一個用戶一個。現有的Token超時時間設置方案是固定時長,此種設置方式往往很難適用于所有應用環境下,如一些應用要頻繁使用Token,希望超時時間長,但是超時時間越長,安全性越低,因為在Token丟失之后,用戶的賬戶在此次Token有效期內,盜用者可以使用此Token非法調用接口使用被盜用用戶的信息。但是有的應用只是使用Token在登陸的時候獲取一次用戶信息,并不需要特別長的超時時間。如果讓應用自己選擇超時時間,應用很難選擇一個合適的超時時間,往往趨于將超時時間設置的過長,而過長就存在安全問題。
發明內容
本發明要解決的技術問題是如何提供一種令牌管理方法和系統,以自適應地取消令牌,從而提高用戶信息的安全性。一種令牌管理系統,包括開放平臺、應用提供方和用戶界面;所述開放平臺中包括令牌獲取接口、令牌取消接口和第三接口 ;所述應用提供方適于根據用戶的授權指令調用所述令牌獲取接口以獲取令牌,使用所述令牌調用所述第三接口實現相應的應用,以及在所述應用的后續進行不再需要所述令牌時或者所述應用完成后調用所述令牌取消接口以取消所述令牌;所述用戶界面適于接收用戶的授權指令,以及接收用戶的退出指令,并在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口以取消所述令牌;
其中,所述應用提供方包括超時設定單元,所述超時設定單元適于在所述令牌獲取單元獲取所述令牌時生成并存儲所述令牌的超時時間。其中,所述應用提供方包括令牌獲取單元;所述令牌獲取單元適于根據所述用戶的授權指令調用所述令牌獲取接口以獲取令牌。其中,所述應用提供方還包括超時監控單元;所述超時監控單元適于判斷當前時間是否已經超過所述令牌的超時時間,如果是,則通知所述令牌獲取單元獲取新的令牌。其中,所述令牌取消接口包括超時判斷模塊和超時修改模塊;·
所述超時判斷模塊,適于從所述超時設定單元中提取所述令牌的超時時間,并判斷當前時間是否已經超過所述令牌的超時時間,如果是,則認為所述令牌已經被取消,否貝U,通知所述超時修改模塊修改所述令牌的超時時間;所述超時修改模塊適于將所述令牌的超時時間修改為當前時間之前的時間。其中,所述應用提供方還包括應用邏輯單元;所述應用邏輯單元適于在所述令牌未被取消時,使用所述令牌調用所述第三接口實現相應的應用。其中,所述用戶界面包括指令接收單元和指令處理單元;所述指令接收單元適于接收用戶的授權指令和退出指令;所述指令處理單元適于將所述授權指令發送給所述應用提供方,以及在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口以取消所述令牌。本發明還提供一種令牌管理方法,包括步驟用戶界面接收用戶的授權指令,并將所述授權指令發送給應用提供方;所述應用提供方根據所述授權指令調用開放平臺中的令牌獲取接口獲取令牌,然后所述應用提供方生成所述令牌的超時時間,并存儲所述超時時間;所述應用提供方使用所述令牌調用所述開放平臺中的第三接口實現相應的應用;所述應用提供方在所述應用的后續進行不再需要所述令牌時或者所述應用完成后調用令牌取消接口取消所述令牌;所述用戶界面接收用戶的退出指令,并在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口取消所述令牌。其中,所述應用提供方使用所述令牌調用所述開放平臺中的第三接口實現相應的應用,具體包括步驟所述應用提供方判斷當前時間是否超過所述令牌的超時時間,如果是,則返回所述步驟用戶界面接收用戶的授權指令,并將所述授權指令發送給應用提供方;否則,所述應用提供方使用所述令牌調用所述開放平臺中的第三接口實現相應的應用。其中,所述令牌取消接口取消所述令牌,具體包括步驟所述令牌取消接口獲取所述令牌的超時時間,并判斷當前時間是否超過所述令牌的超時時間,如果是,則認為所述令牌已經被取消,否則,將所述令牌的超時時間修改為當前時間之前的時間。
其中,所述用戶界面接收用戶的退出指令,并在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口取消所述令牌,具體包括步驟所述用戶界面接收用戶的退出指令后獲取所述令牌的超時時間;所述用戶界面判斷當前時間是否超過所述令牌的超時時間,如果是,則認為所述令牌已經被取消,否則,調用所述令牌取消接口取消所述令牌。所述開放平臺為提供開放API接口的平臺設備,例如平臺服務器、接入服務器等。所述應用提供方一般為提供第三方應用業務的計算設備,例如第三方服務器、業務提供設備、應用方業務設備。所述用戶界面一般即為客戶端設備,例如PC設備、移動終端等。 本發明所述令牌管理方法和系統,增設了令牌取消接口,應用提供方適時調用令牌取消接口取消令牌,同時在應用提供方未及時取消令牌的情況下,用戶界面也可以根據用戶的退出指令調用令牌取消接口取消令牌,從而克服了現有技術中根據固定時長的超時時間取消令牌所存在的安全隱患,實現了對令牌的自適應地取消,提高了用戶信息的安全性。
圖I是本發明實施例所述令牌接管理系統的模塊結構示意圖;圖2是本發明實施例所述應用提供方的內部模塊結構示意圖;圖3是本發明實施例所述令牌取消接口的內部模塊結構示意圖;圖4是本發明實施例所述用戶界面的內部模塊結構示意圖;圖5是本發明實施例所述令牌管理方法的流程圖;圖6是本發明實施例所述令牌管理方法的細致流程圖;圖7是本發明實施例中所述令牌取消接口取消所述令牌的流程圖。
具體實施例方式下面結合附圖和實施例,對本發明的具體實施方式
作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。根據對現有技術的分析,克服現有技術中問題的關鍵在于令牌生成之后,什么時候會被取消,原有機制是固定時間超過即取消,也就是在使用令牌時判斷是否超時,超時后重新獲取令牌。本發明的關鍵點在于在原有接口基礎上增加用于取消令牌的令牌取消接□。設置令牌取消接口后,應用提供方何時調用令牌取消接口也很重要,因為應用提供方為簡單化開發有可能會選擇不恰當的時機調用令牌取消接口。為此,本申請令令牌取消接口在以下兩種情況下被調用a、主動控制由應用提供方自己調用,在確定一段時間內不使用令牌時,取消此令牌,以保證令牌的最短有效時間,如此可以提高安全性;b、協同控制由最終用戶觸發,用戶界面去調用。因為開放平臺并不能確定應用提供方是否會嚴格執行安全至上的原則而主動去調用此取消接口,因此設置協同控制作為主動控制的補充。
通過設置上述兩種控制方式,可以在適應大部分應用環境的情況下,保證用戶正常使用,同時最大程度的限制了令牌的危險時間。接下來將對本申請的系統和方法進行詳細說明如下圖I是本發明實施例所述令牌管理系統的模塊結構示意圖,如圖I所示,所述系統包括開放平臺100、應用提供方200和用戶界面300。所述開放平臺100中包括令牌獲取接口 110、令牌取消接口 120和第三接口 130。所述應用提供方200適于根據用戶的授權指令調用所述令牌獲取接口 110以獲取令牌,使用所述令牌調用所述第三接口 130實現相應的應用,以及在所述應用的后續進行不再需要所述令牌時或者所述應用完成后調用所述令牌取消接口 120以取消所述令牌。所述應用的后續進行不再需要所述令牌,即在可以預測的預定時間內所述應用的進行無需所述應用提供方200使用所述令牌調用所述第三接口。所述用戶界面300適于接收用戶的授權指令,以及接收用戶的退出指令,并在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口 120以取消所述令牌。·根據用戶的退出指令取消所述令牌,即協同控制方式,作為所述應用提供方200主動取消所述令牌的一種輔助控制方式,其只在所述應用提供方200未能及時取消所述令牌的情況被米用。圖2是所述應用提供方200的內部模塊結構示意圖,如圖2所示,所述應用提供方200進一步包括令牌獲取單元210、超時設定單元220、超時監控單元230和應用邏輯單元240。所述令牌獲取單元210適于根據所述用戶的授權指令調用所述令牌獲取接口 110以獲取令牌。所述超時設定單元220適于在所述令牌獲取單元110獲取所述令牌時生成并存儲所述令牌的超時時間。所述超時監控單元230適于判斷當前時間是否已經超過所述令牌的超時時間,如果是,則通知所述令牌獲取單元110獲取新的令牌。當獲取新的令牌時,所述令牌獲取單元210需要重新獲得用戶的授權指令,此時原有令牌實際上已經被自動取消。所述應用邏輯單元240適于在所述令牌未被取消時,使用所述令牌調用所述第三接口 130實現相應的應用。圖3是所述令牌取消接口的內部模塊結構示意圖,如圖3所示,所述令牌取消接口120包括超時判斷模塊121和超時修改模塊122。所述超時判斷模塊121,適于從所述超時設定單元220中提取所述令牌的超時時間,并判斷當前時間是否已經超過所述令牌的超時時間,如果是,則認為所述令牌已經被取消,否則,通知所述超時修改模塊122修改所述令牌的超時時間。所述超時修改模塊122適于將所述令牌的超時時間修改為當前時間之前的時間,比如修改為當前時間的前一秒。下面表I是所述令牌取消接口的采用PHP語言實現的一種代碼示例,表2是對其中相應參數含義解釋說明。本領域技術人員根據上述內容容易替換為其他語言實現所述令牌取消接口。表I令牌取消接口實現示例
權利要求
1.一種令牌管理系統,包括開放平臺、應用提供方和用戶界面; 所述開放平臺中包括令牌獲取接口、令牌取消接口和第三接口 ; 所述應用提供方適于根據用戶的授權指令調用所述令牌獲取接口以獲取令牌,使用所述令牌調用所述第三接口實現相應的應用,以及在所述應用的后續進行不再需要所述令牌時或者所述應用完成后調用所述令牌取消接口以取消所述令牌; 所述用戶界面適于接收用戶的授權指令,以及接收用戶的退出指令,并在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口以取消所述令牌; 其中,所述應用提供方包括超時設定單元,所述超時設定單元適于在所述令牌獲取單元獲取所述令牌時生成并存儲所述令牌的超時時間。
2.如權利要求I所述的系統,其特征在于,所述應用提供方包括令牌獲取單元; 所述令牌獲取單元適于根據所述用戶的授權指令調用所述令牌獲取接口以獲取令牌。
3.如權利要求I或2所述的系統,其特征在于,所述應用提供方還包括超時監控單元; 所述超時監控單元適于判斷當前時間是否已經超過所述令牌的超時時間,如果是,則通知所述令牌獲取單元獲取新的令牌。
4.如權利要求I至3任一項所述的系統,其特征在于,所述令牌取消接口包括超時判斷模塊和超時修改模塊; 所述超時判斷模塊,適于從所述超時設定單元中提取所述令牌的超時時間,并判斷當前時間是否已經超過所述令牌的超時時間,如果是,則認為所述令牌已經被取消,否則,通知所述超時修改模塊修改所述令牌的超時時間; 所述超時修改模塊適于將所述令牌的超時時間修改為當前時間之前的時間。
5.如權利要求I至4任一項所述的系統,其特征在于,所述應用提供方還包括應用邏輯單元; 所述應用邏輯單元適于在所述令牌未被取消時,使用所述令牌調用所述第三接口實現相應的應用。
6.如權利要求I至5任一項所述的系統,其特征在于,所述用戶界面包括指令接收單元和指令處理單元; 所述指令接收單元適于接收用戶的授權指令和退出指令; 所述指令處理單元適于將所述授權指令發送給所述應用提供方,以及在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口以取消所述令牌。
7.一種令牌管理方法,包括步驟 用戶界面接收用戶的授權指令,并將所述授權指令發送給應用提供方; 所述應用提供方根據所述授權指令調用開放平臺中的令牌獲取接口獲取令牌,然后所述應用提供方生成所述令牌的超時時間,并存儲所述超時時間; 所述應用提供方使用所述令牌調用所述開放平臺中的第三接口實現相應的應用;所述應用提供方在所述應用的后續進行不再需要所述令牌時或者所述應用完成后調用令牌取消接口取消所述令牌; 所述用戶界面接收用戶的退出指令,并在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口取消所述令牌。
8.如權利要求7所述的方法,其特征在于,所述應用提供方使用所述令牌調用所述開放平臺中的第三接口實現相應的應用,具體包括步驟 所述應用提供方判斷當前時間是否超過所述令牌的超時時間,如果是,則返回所述步驟用戶界面接收用戶的授權指令,并將所述授權指令發送給應用提供方;否則,所述應用提供方使用所述令牌調用所述開放平臺中的第三接口實現相應的應用。
9.如權利要求7至8任一項所述的方法,其特征在于,所述令牌取消接口取消所述令牌,具體包括步驟 所述令牌取消接口獲取所述令牌的超時時間,并判斷當前時間是否超過所述令牌的超時時間,如果是,則認為所述令牌已經被取消,否則,將所述令牌的超時時間修改為當前時間之前的時間。
10.如權利要求7至9任一項所述的方法,其特征在于,所述用戶界面接收用戶的退出指令,并在所述令牌尚未取消的情況下根據所述退出指令調用所述令牌取消接口取消所述令牌,具體包括步驟 所述用戶界面接收用戶的退出指令后獲取所述令牌的超時時間; 所述用戶界面判斷當前時間是否超過所述令牌的超時時間,如果是,則認為所述令牌已經被取消,否則,調用所述令牌取消接口取消所述令牌。
全文摘要
本發明公開了一種令牌管理方法和系統,涉及互聯網領域。所述方法包括用戶界面接收用戶的授權指令并發送給應用提供方;應用提供方根據授權指令調用開放平臺中的令牌獲取接口獲取令牌,然后應用提供方生成所述令牌的超時時間并存儲;應用提供方使用令牌調用所述開放平臺中的第三接口實現相應的應用;應用提供方在應用的后續進行不再需要所述令牌時或者應用完成后調用令牌取消接口取消令牌;用戶界面接收用戶的退出指令,并在令牌尚未取消的情況下根據退出指令調用令牌取消接口取消令牌。所述方法和系統,克服了現有技術中根據固定時長的超時時間取消令牌所存在的安全隱患,實現了對令牌的自適應地取消,提高了用戶信息的安全性。
文檔編號H04L29/06GK102904894SQ201210404490
公開日2013年1月30日 申請日期2012年10月22日 優先權日2012年10月22日
發明者胡聰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司