本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別的,涉及一種使用友好的,雙令牌賬戶登錄方法及裝置。
背景技術(shù):
現(xiàn)有技術(shù)中,互聯(lián)網(wǎng)技術(shù)已經(jīng)越來越多的介入日常生活,用戶需要在手機或者電腦上頻繁的登錄各種網(wǎng)站或者APP應(yīng)用,各種登錄的方法既要滿足安全性,又要滿足用戶使用的便利性。
當前常用的賬號登錄方式包括如下幾種:
第一種方式,登錄只在一段時間內(nèi)有效,最多一天,超過這段時間,訪問相同站點需要重新登錄。
第二種方式是站點可以讓用戶選擇登錄長期有效,這個有效期一般為一個月,在此期間無論何種情況訪問當前站點都無需重新登錄。
第三種方式是登錄長期有效,但站點會根據(jù)用戶的活躍度來決定用戶是否需要重新登錄。
上述的方案存在如下的缺點:
1.安全性和用戶友好性兩方面都欠缺考慮
第一種登錄方式在此兩個方面就都欠缺考慮。首先,采用這種登錄方式有效期比較短,重度使用此站點的用戶需要頻繁輸入用戶名密碼進行登錄,雖然現(xiàn)代的瀏覽器都可以記住賬號和密碼可以方便登錄,但是依然需要點擊登錄按鈕進行登錄,且賬號和密碼被瀏覽器記住也是存在風險的;再次此種方式登錄后,會在用戶客戶端種一個和用戶登錄相關(guān)的cookie,cookie就是一個文件,一旦這個文件被其他用戶獲取,將可以在有效期內(nèi)做站點做任何業(yè)務(wù)。
2.照顧到了用戶友好性,但信息安全性較差
第二種登錄方式就是此種情況的典型代表,一旦用戶點擊了長期有效,則在登錄后的一個月內(nèi)用戶是不需要輸入用戶名和密碼進行登錄的,用戶的交互友好性的確得到了照顧;但此種方式的安全性較差,因為登錄后在客戶端產(chǎn)生的cookie文件容易被三方盜取,一旦盜取服務(wù)端是無法覺察的,只有用戶投訴讓服務(wù)方手工干預(yù)或者等待登錄到期。
3.考慮到了安全方面的問題,缺失了用戶友好性
第三種登錄方式一般的過程如下,用戶雖然登錄了站點,但因為有其他的事情一段時間在此站點上沒有任何訪問或其他的行為,而站點因為設(shè)置了一段時間內(nèi)用戶無訪問的情況下再次訪問站點用戶無論做任何訪問都需要重新登錄的規(guī)則,這時雖然登錄cookie有效但依然需要重新登錄,這種方式安全性是有一定的保障的,但是用戶友好性不夠。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提出一種雙令牌賬戶登錄方法及裝置,以解決用戶友好性和安全性的矛盾。
為達此目的,本發(fā)明采用以下技術(shù)方案:
一種雙令牌賬戶登錄方法,包括如下步驟:
步驟110:接收用戶登錄認證請求,登錄認證請求中包含了用戶的賬戶信息;
步驟120:判斷所述用戶登錄請求中是否包含長期登錄請求,如果有所述長期登錄請求,則生成會話令牌(會話token)和持久令牌(長期token),否則僅生成會話令牌(會話token);
步驟130:發(fā)送在步驟120中生成的令牌給用戶,并且允許用戶登錄,發(fā)送后續(xù)信息。
優(yōu)選地,步驟140:接收用戶的內(nèi)容請求,所述內(nèi)容請求中攜帶有用戶得到的所有的令牌;
步驟150:判斷所述內(nèi)容請求中是否包含會話令牌,如果有會話令牌,則對該會話令牌進行驗證,如果驗證通過,則進入步驟160,如果沒有會話令牌,則判斷是否包含持久令牌,如果有持久令牌,則對該持久令牌進行驗證,如果驗證通過,則生成新的會話令牌,并進入步驟160,否則驗證失敗,重新登錄驗證;
步驟160:將驗證更新后的令牌發(fā)送給用戶,并且允許用戶登錄,發(fā)送后續(xù)信息。
優(yōu)選地,在步驟150中,如果判斷有會話令牌,且會話令牌驗證不通過,則轉(zhuǎn)入持久令牌驗證。
優(yōu)選地,在步驟150之后,允許用戶登錄之前,還包括步驟155,在會話令牌驗證通過后,或者持久令牌驗證通過,生成新的會話令牌后,均對會話令牌的過期時間進行更新。
優(yōu)選地,在步驟150之后,允許用戶登錄之前,還可以根據(jù)所訪問頁面的需要,要求用戶重新輸入用戶和密碼進行二次驗證。
本發(fā)明還公開了一種雙令牌賬戶登錄驗證裝置,其特征在于,包括:
第一接收模塊:用于接收用戶登錄認證請求,登錄認證請求中包含了用戶的賬戶信息;
第一判斷模塊:用于判斷所述用戶登錄請求中是否包含長期登錄請求,如果有所述長期登錄請求,則生成會話令牌(會話token)和持久令牌(長期token),否則僅生成會話令牌(會話token);
第一發(fā)送模塊:用于發(fā)送在步驟120中生成的令牌給用戶,并且允許用戶登錄,發(fā)送后續(xù)信息。
優(yōu)選地,第二接收模塊:用于接收用戶的內(nèi)容請求,所述內(nèi)容請求中攜帶有用戶得到的所有的令牌;
第二判斷模塊:用于判斷所述內(nèi)容請求中是否包含會話令牌,如果有會話令牌,則對該會話令牌進行驗證,如果驗證通過,則利用第二發(fā)送模塊,允許用戶登錄,發(fā)送后續(xù)信息,如果沒有會話令牌,則判斷是否包含持久令牌,如果有持久令牌,則對該持久令牌進行驗證,如果驗證通過,則生成新的會話令牌,并利用第二發(fā)送模塊,允許用戶登錄,發(fā)送后續(xù)信息,否則驗證失敗,重新登錄驗證;
第二發(fā)送模塊:將驗證更新后的令牌發(fā)送給用戶,并且允許用戶登錄,發(fā)送后續(xù)信息。
優(yōu)選地,所述第二判斷模塊,如果判斷有會話令牌,且會話令牌驗證不通過,則轉(zhuǎn)入持久令牌驗證。
優(yōu)選地,還包括更新模塊,在會話令牌驗證通過后,或者持久令牌驗證通過,生成新的會話令牌后,對會話令牌的過期時間進行更新。
優(yōu)選地,對于所述第二判斷模塊,允許用戶登錄之前,還根據(jù)所訪問頁面的需要,要求用戶重新輸入用戶和密碼進行二次驗證。
本發(fā)明選擇了令牌驗證的方式,客戶端存儲的信息與用戶敏感信息無關(guān),且在在拿到客戶端信息的情況下,依然無法得到用戶的認證信息。當用戶選擇長期登錄時,采用雙令牌的機制,確保在一段時間內(nèi)始終生成會話令牌,且在安全性較高的服務(wù)時,仍然選擇輸入用戶名和密碼,一切用戶認證信息都只能在服務(wù)器端存儲,一切用戶敏感業(yè)務(wù)都需要通過統(tǒng)一驗證中心后才可以訪問,系統(tǒng)能夠友好識別用戶是被動登錄還是主動輸入認證信息后的登錄,既保證了安全性,又提高了用戶使用的友好性。
附圖說明
圖1是根據(jù)本發(fā)明具體實施例的雙令牌登錄方法的一個實施例的流程圖;
圖2是根據(jù)本發(fā)明具體實施例的雙令牌登錄方法的另一個實施例的流程圖;
圖3是是根據(jù)本發(fā)明具體實施例的雙令牌登錄驗證裝置的模塊圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
本發(fā)明提供了一種使用友好,并且安全性較高的雙令牌賬戶登錄方法及裝置,
參見圖1,示出了根據(jù)本發(fā)明具體實施例的雙令牌登錄方法的一個實施例:
步驟110:接收用戶登錄認證請求,登錄認證請求中包含了用戶的賬戶信息;
在本實施例中,該步驟表示用戶根據(jù)諸如用戶名、密碼等的賬戶信息想服務(wù)器發(fā)起用戶登錄認證請求,而服務(wù)端接收到了該用戶登錄認證請求。
該步驟一般用于用戶從來沒有登錄過當前站點,站點顯示標準的登錄頁面,包含用戶名和密碼以及其他驗證碼之類的輸入框的頁面;且用戶可以選擇直接登錄,也可以選擇后期自動登錄的方式,比如“記住我”之類的勾選。
步驟120:判斷所述用戶登錄請求中是否包含長期登錄請求,如果有所述長期登錄請求,則生成會話令牌(會話token)和持久令牌(長期token),否則僅生成會話令牌(會話token);
在本實施例中,該步驟表示服務(wù)端用于判斷用戶登錄請求的時間長短,例如,用戶可以勾選諸如“記住我”選擇框,以請求進行長期登錄,如果用戶不勾選諸如“記住我”選擇框,則該用戶登錄請求不包含長期登錄請求,則僅僅表示進行短期的登錄。根據(jù)不同的請求,生成的令牌不同,會話令牌僅用于判斷是否允許短期的登錄,例如幾個小時,或者是否退出網(wǎng)站或者APP,當經(jīng)過相應(yīng)的事件,或者退出網(wǎng)站后,則會話令牌則失效;而持久令牌則允許長期的登錄,例如1個月。其中會話令牌和持久令牌均和用戶的賬號等信息關(guān)聯(lián),且也緩存在服務(wù)器中。
步驟130:發(fā)送在步驟120中生成的令牌給用戶,并且允許用戶登錄,發(fā)送后續(xù)信息。
在本實施例中,該步驟表示在用戶初始認證成功后,服務(wù)端發(fā)送對應(yīng)令牌,并允許用戶登錄。
因此,采用該方法,在客戶端僅僅保存了會話令牌,以及是否進行持久登錄的持久令牌,上述信息與用戶的敏感信息無關(guān),即便拿到客戶端的信息,也無法得到用戶的認證信息。
進一步的,參見圖2,示出了根據(jù)本發(fā)明具體實施例的雙令牌登錄方法的另一個實施例:
步驟140:接受用戶的內(nèi)容請求,所述內(nèi)容請求中攜帶有用戶得到的所有的令牌;
在本實施例中,該步驟表示在服務(wù)端在客戶端種入令牌后,用戶訪問站點的任何內(nèi)容,都需要攜帶相應(yīng)的令牌進行會話驗證。
步驟150:判斷所述內(nèi)容請求中是否包含會話令牌,如果有會話令牌,則進行會話令牌驗證,例如,將此會話令牌對應(yīng)的值(Value)與緩存服務(wù)器中的值進行比較,如果驗證通過,則進入步驟160,如果沒有會話令牌,則判斷是否包含持久令牌,如果有持久令牌,則進行持久令牌驗證,例如,將此持久令牌對應(yīng)的值(Value)與緩存服務(wù)器中的值進行比較,如果驗證通過,則生成新的會話令牌,并進入步驟160,否則驗證失敗,重新登錄驗證。
在本實施例中,該步驟表示在會話令牌和持久令牌都種到客戶端之后,用戶訪問站點任何內(nèi)容都需要先做會話驗證服務(wù),只有會話驗證通過之后才會去訪問用戶想要訪問的內(nèi)容。通過持久令牌表示用戶是否長期登錄。當會話令牌失效后,會話服務(wù)會根據(jù)持久令牌來生成新的會話令牌,這時候的會話令牌被標記為被動的會話令牌,表示是由登錄后內(nèi)容請求而生成的令牌,以區(qū)別首次登錄生成的會話令牌(該令牌也可稱為主動的會話令牌)。
步驟160:將驗證更新后的令牌發(fā)送給用戶,并且允許用戶登錄,發(fā)送后續(xù)信息。
在本實施例中,該步驟表示該驗證更新后的令牌,可以僅包括首次登錄生成的主動會話令牌,也可以包括持久令牌和新生成的被動會話令牌。
進一步的,在步驟150中,如果判斷有會話令牌,且會話令牌驗證不通過,則轉(zhuǎn)入持久令牌驗證。
這樣,在任何令牌驗證中,都有補救機制保證進行持久令牌驗證,以保證始終能夠判斷用戶是否勾選了“記住我”,選擇長期登錄。
進一步的,在步驟150之后,允許用戶登錄之前,還包括步驟155,在會話令牌驗證通過后,或者持久令牌驗證通過,生成新的會話令牌后,均對會話令牌的過期時間進行更新。
該步驟也可以在會話令牌驗證通過,僅對驗證后的會話令牌的過期時間進行更新,這是由于持久令牌驗證通過,生成新的會話令牌的過期時間是最新的,無須進行更新。本領(lǐng)域技術(shù)人員應(yīng)當知道,上述的變形效果是一樣的。
在本實施例中,該步驟表示會話令牌在有效期內(nèi),它的有效期會隨用戶的不斷訪問而向后推移,從而始終允許用戶訪問。
此外,在步驟150之后,允許用戶登錄之前,還可以根據(jù)所訪問頁面的需要,要求用戶重新輸入用戶和密碼進行二次驗證。
在本實施例中,該步驟表示可以根據(jù)安全等級需求的需要靈活安排二次認證。
此時,服務(wù)端可以是在僅生成新的被動的會話令牌后要求進行二次驗證,也可以無論是主動的會話令牌驗證,還是生成新的被動的會話令牌,均要求用戶重新輸入用戶和密碼進行二次驗證。這樣,即使裝有兩個令牌的cookie文件被盜取了也是沒有關(guān)系的,均能夠保證系統(tǒng)的安全性和涉密業(yè)務(wù)的準入性。
因此,根據(jù)本發(fā)明的實施例,用戶的一切認證信息都只能在服務(wù)器端存儲;一切用戶敏感業(yè)務(wù)都需要通過統(tǒng)一驗證中心后才可以訪問,且系統(tǒng)能夠通過識別是被動登錄還是主動輸入認證信息后的登錄。
為了便于理解,下面通過一個具體的應(yīng)用場景對本發(fā)明的雙令牌賬戶登錄方法進行描述:
以選擇了“記住我”為例,進行說明。用戶登錄某個網(wǎng)站,“記住我”,發(fā)送登錄請求,則此時,服務(wù)端收到登錄請求后,判斷存在長期登錄請求,根據(jù)用戶賬號和密碼,生成會話令牌和持久令牌,并允許用戶登錄,等用戶登錄后,進行任何其它的頁面或者業(yè)務(wù)請求后,均需要利用得到的會話令牌進行會話驗證服務(wù),當會話令牌還在有效期之內(nèi)的時候,服務(wù)端能夠?qū)υ摃捔钆乞炞C,如果驗證通過則繼續(xù)訪問,且更新該會話令牌的過期時間,并將更新后的會話令牌返回給用戶,保證用戶能夠進行后續(xù)的訪問;如果驗證不通過,則尋找是否有持久令牌,如果也沒有持久令牌,則驗證失敗,無法繼續(xù)訪問。如果會話令牌由于超過預(yù)定時間而失效后,則直接進行持久令牌的驗證,如果持久令牌的驗證失敗,則無法繼續(xù)訪問,需要重新輸入用戶名和密碼,如果持久令牌驗證通過,則重新生成新的會話令牌(相當于被動的會話令牌),允許繼續(xù)訪問,并將更新后的會話令牌返回給用戶,保證用戶能夠進行后續(xù)的訪問。
如果,用戶未選擇“記住我”的選項,用戶登錄某個網(wǎng)站,“記住我”,發(fā)送登錄請求,則此時,服務(wù)端收到登錄請求后,判斷不存在長期登錄請求,根據(jù)用戶賬號和密碼,只生成會話令牌,并允許用戶登錄,等用戶登錄后,進行任何其它的頁面或者業(yè)務(wù)請求后,均需要利用得到的會話令牌進行會話驗證服務(wù),當會話令牌還在有效期之內(nèi)的時候,服務(wù)端能夠?qū)υ摃捔钆乞炞C,如果驗證通過則繼續(xù)訪問,且更新該會話令牌的過期時間,并將更新后的會話令牌返回給用戶,保證用戶能夠進行后續(xù)的訪問;如果驗證不通過,則尋找是否有持久令牌,由于沒有持久令牌,則驗證失敗,無法繼續(xù)訪問。如果會話令牌由于超過預(yù)定時間而失效后,則直接進行持久令牌的驗證,由于沒有持久令牌,則驗證失敗。
其中,可以調(diào)用SESSIONS生成接口,生成主動會話令牌和持久令牌,可以調(diào)用so加密主動會話令牌和/或持久令牌,并將加密后的內(nèi)容通過json返回給客戶端。
因此,本發(fā)明選擇了令牌驗證的方式,客戶端存儲的信息與用戶敏感信息無關(guān),且在在拿到客戶端信息的情況下,依然無法得到用戶的認證信息。當用戶選擇長期登錄時,采用雙令牌的機制,確保在一段時間內(nèi)始終生成會話令牌,且在安全性較高的服務(wù)時,仍然選擇輸入用戶名和密碼,一切用戶認證信息都只能在服務(wù)器端存儲,一切用戶敏感業(yè)務(wù)都需要通過統(tǒng)一驗證中心后才可以訪問,系統(tǒng)能夠友好識別用戶是被動登錄還是主動輸入認證信息后的登錄,既保證了安全性,又提高了用戶使用的友好性。
下面對本發(fā)明的雙令牌賬戶登錄驗證裝置進行詳細描述,請參見圖3,示出了,根據(jù)本發(fā)明具體實施例的雙令牌賬戶認證裝置,該裝置設(shè)置在服務(wù)器端,對用戶發(fā)出的各種登錄請求,或者內(nèi)容請求進行驗證。
一種雙令牌賬戶登錄驗證裝置,包括:
第一接收模塊210:用于接收用戶登錄認證請求,登錄認證請求中包含了用戶的賬戶信息;
第一判斷模塊220:用于判斷所述用戶登錄請求中是否包含長期登錄請求,如果有所述長期登錄請求,則生成會話令牌(會話token)和持久令牌(長期token),否則僅生成會話令牌(會話token);
第一發(fā)送模塊230:用于發(fā)送在步驟120中生成的令牌給用戶,并且允許用戶登錄,發(fā)送后續(xù)信息。
進一步的,還包括第二接收模塊240:用于接收用戶的內(nèi)容請求,所述內(nèi)容請求中攜帶有用戶得到的所有的令牌;
第二判斷模塊250:用于判斷所述內(nèi)容請求中是否包含會話令牌,如果有會話令牌,則對該會話令牌進行驗證,如果驗證通過,則利用第二發(fā)送模塊,允許用戶登錄,發(fā)送后續(xù)信息,如果沒有會話令牌,則判斷是否包含持久令牌,如果有持久令牌,則對該持久令牌進行驗證,如果驗證通過,則生成新的會話令牌,并利用第二發(fā)送模塊,允許用戶登錄,發(fā)送后續(xù)信息,否則驗證失敗,重新登錄驗證;
第二發(fā)送模塊260:將驗證更新后的令牌發(fā)送給用戶,并且允許用戶登錄,發(fā)送后續(xù)信息。
進一步的,所述第二判斷模塊250,如果判斷有會話令牌,且會話令牌驗證不通過,則轉(zhuǎn)入持久令牌驗證。
進一步的,還包括更新模塊255,在會話令牌驗證通過后,或者持久令牌驗證通過,生成新的會話令牌后,對會話令牌的過期時間進行更新。
進一步的,對于所述第二判斷模塊250,允許用戶登錄之前,還根據(jù)所訪問頁面的需要,要求用戶重新輸入用戶和密碼進行二次驗證。
顯然,本領(lǐng)域技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各單元或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個計算裝置上,可選地,他們可以用計算機裝置可執(zhí)行的程序代碼來實現(xiàn),從而可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件的結(jié)合。
以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施方式僅限于此,對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單的推演或替換,都應(yīng)當視為屬于本發(fā)明由所提交的權(quán)利要求書確定保護范圍。