本發明涉及移動終端上APP的用戶登錄領域,具體涉及一種移動終端單點登錄(SSO,在一個多業務系統共存的環境下,用戶在一處登錄后,就不用在其他系統中登錄,也就是用戶的一次登錄能得到其他所有業務系統的信任)多業務互聯APP的方法及系統。
背景技術:
隨著互聯網技術的發展,越來越多的用戶喜歡在移動終端上通過APP進行“虛擬業務”(例如網上購物、觀看視頻等)。用戶使用APP之前,需要輸入自己獨有的唯一標識信息(即用戶名和密碼),以得知自己的行為記錄,便于后續的管理。
但是,用戶在移動終端上訪問多個APP時,即使多個APP相互關聯,也需要針對每個APP各輸入一遍唯一標識信息,其操作過程比較繁瑣,用戶體驗較差。
技術實現要素:
針對現有技術中存在的缺陷,本發明解決的技術問題為:用戶首次訪問APP后,若在指定期限內再次登錄APP,即可在無需輸入唯一標識信息的情況下,直接訪問當前APP、以及該APP關聯的其他APP。本發明不僅操作過程比較簡單,而且用戶體驗較好,適于推廣。
為達到以上目的,本發明提供的移動終端單點登錄多業務互聯APP的方法,包括以下步驟:
步驟A:判斷服務端中是否存在與移動終端對應的長token,若是,轉到步驟C,否則轉到步驟B;
步驟B:當前移動終端向服務端發送唯一標識信息,服務端生成與當前移動終端對應的帶有使用周期的長token,以及與當前運行的APP對應的帶有使用周期的短token后,儲存長token和短token,將短token返回至移動終端;
步驟B中長token的生成方式為:根據唯一標識信息和當前移動終端的id,生成長token,通過加密算法將長token進行加密;短token的生成方式為:根據唯一標識信息、當前移動終端的id、以及當前運行的APP的id,生成短token;
步驟C:當長token未過期時,判斷服務端中是否存在:同時與長token、以及當前運行的APP對應的短token,若是,轉到步驟E,否則轉到步驟D;
步驟D:服務端根據當前移動終端的長token、以及當前運行的APP的id,生成短token;服務端儲存短token、并將短token返回至移動終端,轉到步驟E;
步驟E:服務端按照步驟B中長token的生成方式,重新生成與短token對應的長token;將原有的長token替換為新生成的長token。
與現有技術相比,本發明的優點在于:
本發明在移動終端首次運行APP時(即長token不存在),為移動終端生成長短token、并將長token儲存在服務端中,將短token同時儲存在服務端和終端設備中。移動終端再次運行APP時,服務端會自動識別對應的短token,進而自動給予移動終端登錄和訪問APP的權限。
因此,與現有技術中需要針對每個APP各輸入一遍唯一標識信息相比,本發明只需要在首次運行某個APP時輸入唯一標識信息,即可在登錄其他關聯的APP,不僅操作過程比較簡單,而且用戶體驗較好,適于推廣。
進一步,本發明在長token未過期的狀態下,移動終端每次運行APP時均會重新生成長token,進而重新計算長token的使用周期,進而保證經常訪問APP的移動終端能夠長期訪問其他APP,避免也長token過期而重新登錄的操作過程,進一步提升了用戶體驗。
進一步,本發明每次生成長token后均會通過加密算法進行加密,進而保證了用戶的唯一標識信息的安全。
附圖說明
圖1為本發明實施例中移動終端單點登錄多業務互聯APP的方法的流程圖;
圖2為本發明實施例中移動終端單點登錄多業務互聯APP的系統的工作時序圖。
具體實施方式
以下結合附圖及實施例對本發明作進一步詳細說明。
首先對移動終端單點登錄需要使用的長token(訪問認證令牌)和短token的關系進行解釋:一個長token可關聯多個短token(即一對多),而一個短token只能對應一個長token(即一對一),例如長token代表移動終端,與長token關聯的多個短token,則代表相互關聯的多個APP(例如隸屬于斗魚服務系統的多個APP)。
在此基礎上,參見圖1所示,本發明實施例中的移動終端單點登錄多業務互聯APP的方法,包括以下步驟:
S1:用戶運行移動終端上的APP后,移動終端向APP的服務端(服務端基于Oauth2.0技術,Open Authorization,一種開發的協議) 發起訪問請求,服務端驗證移動終端通過后,轉到S2。
S1中服務端驗證移動終端通過的具體流程為:服務端獲取移動終端的id和請求域名,當移動終端的id存在于服務端的redis(開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫)中、且請求域名存在于服務端的白名單中時,確定移動終端驗證通過。
S2:服務端在redis中獲取與當前移動終端的id對應的身份認證數據(Oauth數據),判斷是否存在與當前身份認證數據對應的長token,若是,轉到S4,否則確定當前移動終端為無登錄狀態,斷開與當前移動終端的連接,轉到S3。
S3:當前移動終端向服務端發送用戶輸入的唯一標識信息(用戶名和密碼);服務端按照S1的方式驗證移動終端通過后(斷開連接后需要重新驗證),生成與當前移動終端對應的帶有使用周期(例如6個月)的長token,以及與當前運行的APP對應的帶有使用周期(例如3天)短token。將短token和加密后的長token轉換為規定的格式并儲存后,將短token返回至移動終端,轉到S7。
S3中長token生成方式為:根據唯一標識信息和當前移動終端的id,生成對應的帶有使用周期的長token,通過MD5(Message Digest Algorithm MD5,中文名為消息摘要算法)加密算法將長token進行加密(加密參數自定義設置)。
S3中短token的生成方式為:根據唯一標識信息、當前移動終端的id、以及當前運行的APP的id,生成對應的帶有使用周期的短token。
S4:當長token未過期時(即長token的儲存時間小于等于長token的使用周期,若長token過期則直接跳轉至S3),判斷服務端中是否存在:同時與長token、以及當前運行的APP對應的短token(即短token未過期),若是,當前移動終端向服務端發送短token驗證請求,服務端驗證短token合法后,轉到S6,否則轉到S5。
S5:當前移動終端向服務端發送短token生成請求,服務端根據當前移動終端的長token、以及當前運行的APP的id,生成短token,將短token轉換為規定的格式后儲存,將短token返回至移動終端,轉到S6。
S6:按照S3的方式重新生成與短token對應的長token(即重新計算長token的使用周期,進而實現無限延長常用戶登錄狀態)后,將原有的長token替換為新生成的長token,轉到S7。
S7:移動終端獲取短token對應的唯一標識信息,根據唯一標識信息直接登錄和訪問APP。
參見圖2所示,本發明實施例中的移動終端單點登錄多業務互聯APP的系統,包括設置于移動終端上的單點登錄模塊、以及設置于服務端上的單點登錄驗證模塊和長短token生成模塊。
單點登錄模塊用于以下5種情形:
(1)需要使用APP時,向單點登錄驗證模塊發送登錄狀態驗證信號;
(2)收到單點登錄驗證模塊返回的無登錄狀態信號后,向單點登錄驗證模塊發送唯一標識信息;
(3)收到單點登錄驗證模塊返回的短token存在信號后,向單點登錄驗證模塊發送短token驗證請求;
(4)收到單點登錄驗證模塊返回的短token不存在信號后,向單點登錄驗證模塊發送短token生成請求;
(5)收到單點登錄驗證模塊返回的短token后,獲取短token對應的唯一標識信息,根據唯一標識信息直接登錄和訪問APP。
單點登錄驗證模塊用于以下3種情形:
(1)收到單點登錄模塊發送的登錄狀態驗證信號后:
當不存在與移動終端對應的長token時,或者存在與移動終端對應的長token、且長token過期時,向單點登錄模塊返回無登錄狀態信號;將單點登錄模塊發送的唯一標識信息,轉發至長短token生成模塊;
當存在與移動終端對應的長短token、且長token未過期(長token的儲存時間小于等于長token的使用周期),向單點登錄模塊返回短token存在信號;收到單點登錄模塊發送的短token驗證請求后驗證token,驗證通過后向長短token生成模塊發送長token更新信號;
當存在與移動終端對應的未過期的長token、且不存在與移動終端運行的APP對應的短token時,向單點登錄模塊返回短token不存在信號;收到單點登錄模塊發送的短token生成請求后,將短token關聯的長token發送至長短token生成模塊;
(2)收到長短token生成模塊返回的長token后,通過MD5加密算法將長token進行加密(加密參數自定義設置),將原有的長token替換為加密后的長token;
(3)收到長短token生成模塊返回的短token后,儲存短token、并將短token返回至單點登錄模塊。
長短token生成模塊用于以下3種情形:
(1)收到單點登錄驗證模塊轉發的唯一標識信息后,生成與移動終端對應的帶有使用周期的長token,以及與移動終端運行的APP對應的帶有使用周期的短token,返回長短token至單點登錄驗證模塊;
(2)收到單點登錄驗證模塊發送的長token更新信號后,重新生成長token,將重新生成的長token返回至單點登錄驗證模塊;
(3)收到單點登錄驗證模塊發送的長token后,生成與移動終端運行的APP對應的短token,返回新生成的短token及其對應的長token至單點登錄驗證模塊;
長短token生成模塊生成長token的方式為:根據唯一標識信息和當前移動終端的id,生成長token;生成短token的方式為:根據唯一標識信息、當前移動終端的id、以及當前運行的APP的id,生成短token。
進一步,本發明不局限于上述實施方式,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發明的保護范圍之內。本說明書中未作詳細描述的內容屬于本領域專業技術人員公知的現有技術。