本發(fā)明涉及IOS客戶(hù)端的應(yīng)用開(kāi)發(fā)領(lǐng)域,具體涉及一種用于IOS客戶(hù)端的用戶(hù)登錄狀態(tài)保存方法及系統(tǒng)。
背景技術(shù):
當(dāng)前移動(dòng)互聯(lián)網(wǎng)領(lǐng)域中絕大部分APP(Application,應(yīng)用軟件)在獲取更多的使用權(quán)限時(shí),均需要用戶(hù)進(jìn)行登錄。用戶(hù)登錄的方式一般為兩種:用戶(hù)名和密碼登錄、以及第三方(例如QQ、微信和微博等)登錄。
目前,絕大部分的APP均設(shè)置有保留用戶(hù)登錄狀態(tài)的功能,但是,部分APP保留用戶(hù)登錄狀態(tài)的同時(shí)未能保證安全性,進(jìn)而導(dǎo)致用戶(hù)輸入用戶(hù)登錄信息(用戶(hù)名和密碼)可能被黑客偽造服務(wù)端進(jìn)行抓包,從而得知用戶(hù)登錄信息。部分APP保留用戶(hù)登錄狀態(tài)的功能只是將用戶(hù)名和密碼保存至本地,每次啟動(dòng)APP時(shí),客戶(hù)端還是需要用戶(hù)名和密碼向服務(wù)端請(qǐng)求登錄,進(jìn)而大大增加了服務(wù)端的壓力,并且在無(wú)網(wǎng)狀態(tài)下用戶(hù)登錄狀態(tài)會(huì)丟失。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明解決的技術(shù)問(wèn)題為:在IOS客戶(hù)端上首次對(duì)APP進(jìn)行用戶(hù)注冊(cè)后,在有或沒(méi)有網(wǎng)絡(luò)的情況下均在客戶(hù)端上保持用戶(hù)的登錄狀態(tài)。
為達(dá)到以上目的,本發(fā)明提供的用于IOS客戶(hù)端的用戶(hù)登錄狀態(tài)保存方法,包括以下步驟:
步驟A:APP在客戶(hù)端上啟動(dòng)后,判斷客戶(hù)端是否保存有用戶(hù)登錄狀態(tài)信息,若是,轉(zhuǎn)到步驟D;否則轉(zhuǎn)到步驟B;
步驟B:客戶(hù)端獲取用戶(hù)輸入的用戶(hù)登錄信息,用戶(hù)登錄信息包括用戶(hù)名和密碼;客戶(hù)端與服務(wù)端連接成功、且服務(wù)端確認(rèn)用戶(hù)登錄信息正確后,服務(wù)端生成與用戶(hù)登錄信息對(duì)應(yīng)的長(zhǎng)token、以及與長(zhǎng)token關(guān)聯(lián)的短token,轉(zhuǎn)到步驟C;
步驟C:服務(wù)端與客戶(hù)端均保存長(zhǎng)短token、以及用戶(hù)登錄信息,客戶(hù)端保存的長(zhǎng)短token、以及用戶(hù)登錄信息即為步驟A中的用戶(hù)登錄狀態(tài)信息;
步驟D:客戶(hù)端讀取用戶(hù)登錄狀態(tài)信息中的長(zhǎng)短token和用戶(hù)登錄信息;
步驟E:用戶(hù)在APP上執(zhí)行需要用戶(hù)登錄狀態(tài)信息的使用請(qǐng)求時(shí),客戶(hù)端向服務(wù)端發(fā)送包含有當(dāng)前用戶(hù)對(duì)應(yīng)的短token的使用請(qǐng)求;
步驟F:用戶(hù)在客戶(hù)端上使用APP時(shí),客戶(hù)端會(huì)判斷長(zhǎng)短token是否過(guò)期:
若長(zhǎng)token過(guò)期,此時(shí)無(wú)論短token是否過(guò)期,均轉(zhuǎn)到步驟B;
若長(zhǎng)token未過(guò)期,短token過(guò)期,客戶(hù)端會(huì)向服務(wù)端發(fā)送帶有長(zhǎng)token的更換短token請(qǐng)求,服務(wù)端確認(rèn)長(zhǎng)token有效后,根據(jù)自身保存的與客戶(hù)端相同的長(zhǎng)token,重新生成短token,服務(wù)端和客戶(hù)端均將原先的短token,替換為新生成的短token。
本發(fā)明提供的實(shí)現(xiàn)上述方法的用于IOS客戶(hù)端的用戶(hù)登錄狀態(tài)保存系統(tǒng),包括設(shè)置于IOS客戶(hù)端上的用戶(hù)登錄狀態(tài)信息定位模塊、用戶(hù)登錄模塊、用戶(hù)登錄狀態(tài)信息讀取模塊、用戶(hù)登錄狀態(tài)信息使用模塊和token驗(yàn)證模塊;設(shè)置于服務(wù)端上的token生成模塊和短token更換模塊;同時(shí)設(shè)置于IOS客戶(hù)端和服務(wù)端上的用戶(hù)登錄狀態(tài)信息保存模塊;
用戶(hù)登錄狀態(tài)信息定位模塊用于:APP在客戶(hù)端上啟動(dòng)后,判斷是否保存有用戶(hù)登錄狀態(tài)信息,若是,向用戶(hù)登錄狀態(tài)信息讀取模塊發(fā)送用戶(hù)登錄狀態(tài)信息信號(hào);否則向用戶(hù)登錄模塊發(fā)送用戶(hù)登錄信息輸入信號(hào);
用戶(hù)登錄模塊用于:收到用戶(hù)登錄信息輸入信號(hào),提示用戶(hù)輸入用戶(hù)登錄信息,用戶(hù)登錄信息包括用戶(hù)名和密碼;請(qǐng)求與服務(wù)端連接;
token生成模塊用于:客戶(hù)端與服務(wù)端連接成功、且確認(rèn)用戶(hù)登錄信息正確后,生成與用戶(hù)登錄信息對(duì)應(yīng)的長(zhǎng)token、以及與長(zhǎng)token關(guān)聯(lián)的短token;分別向客戶(hù)端和服務(wù)端上的用戶(hù)登錄狀態(tài)信息保存模塊發(fā)送用戶(hù)登錄狀態(tài)信息保存信號(hào);
用戶(hù)登錄狀態(tài)信息保存模塊用于:收到用戶(hù)登錄狀態(tài)信息保存信號(hào)后,保存新生成的長(zhǎng)短token、以及用戶(hù)登錄信息,保存的長(zhǎng)短token、以及用戶(hù)登錄信息即為用戶(hù)登錄狀態(tài)信息定位模塊中的用戶(hù)登錄狀態(tài)信息;
用戶(hù)登錄狀態(tài)信息讀取模塊用于:收到用戶(hù)登錄狀態(tài)信息信號(hào)后,讀取用戶(hù)登錄狀態(tài)信息中的長(zhǎng)短token和用戶(hù)登錄信息;
用戶(hù)登錄狀態(tài)信息使用模塊用于:用戶(hù)在APP上執(zhí)行需要用戶(hù)登錄狀態(tài)信息的使用請(qǐng)求時(shí),向服務(wù)端發(fā)送包含有當(dāng)前用戶(hù)對(duì)應(yīng)的短token的使用請(qǐng)求;
token驗(yàn)證模塊用于:用戶(hù)在客戶(hù)端上使用APP時(shí),判斷長(zhǎng)短token是否過(guò)期:
若長(zhǎng)token過(guò)期,此時(shí)無(wú)論短token是否過(guò)期,均向用戶(hù)登錄模塊發(fā)送用戶(hù)登錄信息輸入信號(hào);
若長(zhǎng)token未過(guò)期,短token過(guò)期,向短token更換模塊發(fā)送帶有長(zhǎng)token的更換短token請(qǐng)求;
短token更換模塊用于:收到更換短token請(qǐng)求、并確認(rèn)短token請(qǐng)求中的長(zhǎng)token有效后,根據(jù)自身保存的與客戶(hù)端相同的長(zhǎng)token,重新生成短token;分別向客戶(hù)端和服務(wù)端上的用戶(hù)登錄狀態(tài)信息保存模塊發(fā)送用戶(hù)登錄狀態(tài)信息保存信號(hào)。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
(1)本發(fā)明在非特殊情況下(例如卸載APP,半年以上不運(yùn)行APP,用戶(hù)賬號(hào)被封禁、主動(dòng)登出等),因?yàn)橛脩?hù)每次運(yùn)行APP時(shí)都會(huì)有首次注冊(cè)或登錄時(shí)保存在本地的用戶(hù)登錄狀態(tài)信息,所以與現(xiàn)有技術(shù)中需要用戶(hù)名和密碼向服務(wù)端請(qǐng)求登錄相比,本發(fā)明不需要向服務(wù)端請(qǐng)求登錄,顯著減緩了服務(wù)端的“壓力”,即使用戶(hù)在無(wú)網(wǎng)絡(luò)環(huán)境下進(jìn)入APP時(shí),仍然不會(huì)丟失登錄狀態(tài),就算用戶(hù)更新APP,也不必重新登錄,非常便于人們使用,適于推廣。
與此同時(shí),與現(xiàn)有技術(shù)中可能被黑客偽造服務(wù)端進(jìn)行抓包,從而得知用戶(hù)登錄信息相比,本發(fā)明使客戶(hù)端通過(guò)token與服務(wù)端進(jìn)行通信連接,因此黑客無(wú)法進(jìn)行偽造服務(wù)端抓包而得之用戶(hù)登錄信息,保證了用戶(hù)使用APP的安全;在此基礎(chǔ)上,本發(fā)明的長(zhǎng)短token定期更換,進(jìn)一步提高了安全性。
(2)本發(fā)明對(duì)客戶(hù)端需要向服務(wù)端發(fā)送的連接請(qǐng)求參數(shù)(用戶(hù)名、本地時(shí)間、密碼等),會(huì)通過(guò)獨(dú)特的鑒權(quán)算法進(jìn)行加密處理,并且密碼也會(huì)經(jīng)過(guò)采用MD5算法加密,確保在客戶(hù)端與服務(wù)端在傳輸數(shù)據(jù)過(guò)程中的安全;與此同時(shí),客戶(hù)端帶有URL緩存機(jī)制,若發(fā)現(xiàn)本地?cái)?shù)據(jù)與服務(wù)端數(shù)據(jù)一致,則不會(huì)去向服務(wù)端請(qǐng)求數(shù)據(jù),這樣可以進(jìn)一步減緩服務(wù)端的壓力。
(3)本發(fā)明為了避免機(jī)器人無(wú)限刷登錄接口的攻擊行為,為用戶(hù)登錄信息的輸入行為設(shè)置了極驗(yàn)驗(yàn)證(一種用戶(hù)體驗(yàn)良好,又保證了安全性的驗(yàn)證碼系統(tǒng),不同于傳統(tǒng)的圖形驗(yàn)證碼,而是用戶(hù)用手指拖拽拼圖);當(dāng)用戶(hù)行為接近機(jī)器人時(shí),會(huì)自動(dòng)觸發(fā)極驗(yàn)驗(yàn)證,極驗(yàn)驗(yàn)證SDK(Software Development Kit,軟件開(kāi)發(fā)工具包)本身有一套完善的安全驗(yàn)證系統(tǒng),它會(huì)將用戶(hù)滑動(dòng)的手勢(shì)坐標(biāo)上傳服務(wù)端做驗(yàn)證,更進(jìn)一步增加了使用APP的安全性。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中用于IOS客戶(hù)端的用戶(hù)登錄狀態(tài)保存方法的流程圖;
圖2為本發(fā)明實(shí)施例中用于IOS客戶(hù)端的用戶(hù)登錄狀態(tài)保存系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
參見(jiàn)圖1所示,本發(fā)明實(shí)施例中的用于IOS客戶(hù)端的用戶(hù)登錄狀態(tài)保存方法,包括以下步驟:
S1:APP在IOS客戶(hù)端上啟動(dòng)后,判斷客戶(hù)端是否保存有用戶(hù)登錄狀態(tài)信息,若是,則證明用戶(hù)之前已經(jīng)登錄過(guò),即使用戶(hù)之前關(guān)閉APP,用戶(hù)登錄信息也不會(huì)丟失,轉(zhuǎn)到S4;否則證明用戶(hù)從未登錄過(guò)或上次主動(dòng)登出,需提示用戶(hù)注冊(cè)或重新登錄,轉(zhuǎn)到S2。
S2:用戶(hù)通過(guò)IOS客戶(hù)端進(jìn)行當(dāng)前APP的注冊(cè)或登錄操作(適用于傳統(tǒng)的賬號(hào)密碼登錄與第三方登錄):客戶(hù)端獲取用戶(hù)輸入的用戶(hù)登錄信息(用戶(hù)名和密碼)。客戶(hù)端與服務(wù)端連接成功、且服務(wù)端確認(rèn)用戶(hù)登錄信息正確后,服務(wù)端生成與用戶(hù)登錄信息對(duì)應(yīng)的長(zhǎng)token(用戶(hù)登錄狀態(tài)標(biāo)識(shí)符)、以及與長(zhǎng)token關(guān)聯(lián)的短token(以下簡(jiǎn)稱(chēng)長(zhǎng)短token,長(zhǎng)短token均設(shè)置有過(guò)期時(shí)間,長(zhǎng)token的有效期為180天以上,短token的有效期小于長(zhǎng)token,一般為7天),轉(zhuǎn)到S3。
S3:服務(wù)端與客戶(hù)端均保存長(zhǎng)短token、以及用戶(hù)登錄信息(客戶(hù)端保存的長(zhǎng)短token和用戶(hù)登錄信息即為S1中的用戶(hù)登錄狀態(tài)信息),客戶(hù)端在界面上顯示用戶(hù)登錄信息,轉(zhuǎn)到S7。
S4:客戶(hù)端讀取用戶(hù)登錄狀態(tài)信息中的長(zhǎng)短token和用戶(hù)登錄信息,在界面上顯示用戶(hù)登錄信息,轉(zhuǎn)到S5。
S5:客戶(hù)端根據(jù)服務(wù)端的當(dāng)前時(shí)間t服(客戶(hù)端的本地時(shí)間可以被用戶(hù)隨意修改,可能出現(xiàn)問(wèn)題)、長(zhǎng)token的過(guò)期時(shí)間t長(zhǎng)和短token的過(guò)期時(shí)間t短,判斷長(zhǎng)短token是否過(guò)期:
若長(zhǎng)token過(guò)期(t長(zhǎng)-t服≤2),無(wú)論短token是否過(guò)期,均需要更換長(zhǎng)短token(此時(shí)會(huì)返回錯(cuò)誤碼),需要重新登錄或注冊(cè),轉(zhuǎn)到S2;
若長(zhǎng)token未過(guò)期,(t長(zhǎng)-t服>2),短token過(guò)期(t短-t服≤2),則需要更換短token(此時(shí)會(huì)返回錯(cuò)誤碼),轉(zhuǎn)到S6;
若長(zhǎng)短token均未過(guò)期(t長(zhǎng)-t服>2、且t短-t服>2),轉(zhuǎn)到S7。
S5在2天之前更換短token,能夠最大化避免在已過(guò)期時(shí)才去更換而讓用戶(hù)重復(fù)操作的弊端;在實(shí)際應(yīng)用中S5可以在S3或S4之后執(zhí)行,即S5可以與S7并行。
S6:客戶(hù)端向服務(wù)端發(fā)送帶有長(zhǎng)token的更換短token請(qǐng)求,服務(wù)端確認(rèn)長(zhǎng)token有效(若無(wú)效例如賬號(hào)封禁,此時(shí)會(huì)返回錯(cuò)誤碼,需要重新登錄或注冊(cè),直接轉(zhuǎn)到S2)后,根據(jù)自身保存的與客戶(hù)端相同的長(zhǎng)token,重新生成短token,服務(wù)端和客戶(hù)端均將原先的短token,替換為新生成的短token,轉(zhuǎn)到S7。
S7:用戶(hù)在APP上執(zhí)行需要用戶(hù)登錄狀態(tài)信息的使用請(qǐng)求時(shí)(例如查看個(gè)人信息、發(fā)彈幕、送禮物、修改頭像等),客戶(hù)端將當(dāng)前用戶(hù)對(duì)應(yīng)的短token作為參數(shù)加入使用請(qǐng)求,服務(wù)端返回使用請(qǐng)求的處理結(jié)果,轉(zhuǎn)到S8。
S8:當(dāng)用戶(hù)在APP上進(jìn)行主動(dòng)登出的操作時(shí),客戶(hù)端和服務(wù)端均將當(dāng)前用戶(hù)的用戶(hù)登錄狀態(tài)信息(用戶(hù)名、密碼和長(zhǎng)短token)刪除,客戶(hù)端將APP的頁(yè)面刷新為未登錄狀態(tài)。若用戶(hù)下次打開(kāi)APP,由于本地保存的信息已被清空,會(huì)提示用戶(hù)登錄,即從S2開(kāi)始執(zhí)行本方法(實(shí)際應(yīng)用中S8可以在S3或S4之后執(zhí)行,即S8可以與S7并行)。
S2中客戶(hù)端與服務(wù)端連接成功的具體流程為:
S201:預(yù)先在客戶(hù)端上設(shè)置鑒權(quán)加密算法和MD5加密算法,在服務(wù)端上設(shè)置對(duì)應(yīng)的鑒權(quán)解密算法和MD5解密算法,轉(zhuǎn)到S202。
S202:客戶(hù)端將需要向服務(wù)端發(fā)送的連接請(qǐng)求參數(shù)(用戶(hù)名、本地時(shí)間、經(jīng)過(guò)MD5加密算法加密的密碼等),經(jīng)過(guò)鑒權(quán)加密算法加密為1個(gè)字符串后,向服務(wù)端發(fā)起帶有加密字符串的連接請(qǐng)求,轉(zhuǎn)到S203。
本實(shí)施例中的鑒權(quán)加密算法為一套自主研發(fā)的算法:SHA256算法(Secure Hash Algorithm 256,安全散列算法),由C++底層庫(kù)開(kāi)發(fā),字符串的加密過(guò)程舉例為:
C++底層暴露出一個(gè)方法接口:
客戶(hù)端將對(duì)應(yīng)參數(shù)傳入:
auth=[self makeHttpUrl:action getparams:newgetDic];
得到結(jié)果的字符串類(lèi)似如下:
auth=d9e1c613742377712f39516c984631f3
將此字符串作為auth參數(shù)代入到請(qǐng)求中(密碼經(jīng)過(guò)MD5加密):
https://xxx.passport.xxx.com/appLogin/username=xxxx&password=j(luò)c08921dsfjkj&auth=d9e1c613742377712f39516c984631f3。
S203:服務(wù)端將客戶(hù)端發(fā)送的連接請(qǐng)求中的加密字符串,經(jīng)過(guò)MD5解密算法和鑒權(quán)解密算法解密,若均解密成功,則確定客戶(hù)端連接成功;否則確定連接失敗,駁回客戶(hù)端的連接請(qǐng)求,重新執(zhí)行S2。
S2中正確的用戶(hù)登錄信息需要同時(shí)滿(mǎn)足以下條件:
(1)用戶(hù)登錄信息合法(若非法則在客戶(hù)端界面中顯示錯(cuò)誤信息);
(2)用戶(hù)登錄信息的輸入行為不屬于機(jī)器人的攻擊行為,若服務(wù)端認(rèn)為用戶(hù)登錄信息的輸入行為屬于機(jī)器人的攻擊行為時(shí),則對(duì)用戶(hù)進(jìn)行極驗(yàn)驗(yàn)證,若驗(yàn)證通過(guò),則確定不屬于機(jī)器人的攻擊行為,否則確定屬于機(jī)器人的攻擊行為。
參見(jiàn)圖2所示,本發(fā)明提供的實(shí)現(xiàn)上述方法的用于IOS客戶(hù)端的用戶(hù)登錄狀態(tài)保存系統(tǒng),包括:
設(shè)置于IOS客戶(hù)端上的用戶(hù)登錄狀態(tài)信息定位模塊、用戶(hù)登錄模塊、用戶(hù)登錄狀態(tài)信息讀取模塊、用戶(hù)登錄狀態(tài)信息使用模塊、token驗(yàn)證模塊和加密算法設(shè)置模塊;
設(shè)置于服務(wù)端上的token生成模塊、短token更換模塊和解密算法設(shè)置模塊;
同時(shí)設(shè)置于IOS客戶(hù)端和服務(wù)端上的用戶(hù)登錄狀態(tài)信息保存模塊、以及用戶(hù)登出模塊。
用戶(hù)登錄狀態(tài)信息定位模塊用于:APP在客戶(hù)端上啟動(dòng)后,判斷是否保存有用戶(hù)登錄狀態(tài)信息,若是,向用戶(hù)登錄狀態(tài)信息讀取模塊發(fā)送用戶(hù)登錄狀態(tài)信息信號(hào);否則向用戶(hù)登錄模塊發(fā)送用戶(hù)登錄信息輸入信號(hào)。
用戶(hù)登錄模塊用于:收到用戶(hù)登錄信息輸入信號(hào),提示用戶(hù)輸入用戶(hù)登錄信息,用戶(hù)登錄信息包括用戶(hù)名和密碼;請(qǐng)求與服務(wù)端連接。
加密算法設(shè)置模塊用于:在客戶(hù)端上設(shè)置鑒權(quán)加密算法和MD5加密算法;當(dāng)用戶(hù)登錄模塊請(qǐng)求與服務(wù)端連接時(shí),將需要向服務(wù)端發(fā)送的連接請(qǐng)求參數(shù),經(jīng)過(guò)鑒權(quán)加密算法加密為1個(gè)字符串后,向解密算法設(shè)置模塊發(fā)起帶有加密字符串的連接請(qǐng)求,所述連接請(qǐng)求參數(shù)包括用戶(hù)名、本地時(shí)間、經(jīng)過(guò)MD5加密算法加密的密碼。
解密算法設(shè)置模塊用于:在服務(wù)端上設(shè)置與所述鑒權(quán)加密算法對(duì)應(yīng)的鑒權(quán)解密算法、以及與所述MD5加密算法對(duì)應(yīng)的MD5解密算法;收到連接請(qǐng)求后,將連接請(qǐng)求中的加密字符串,經(jīng)過(guò)MD5解密算法和鑒權(quán)解密算法解密,若均解密成功,則確定客戶(hù)端連接成功;否則確定連接失敗,駁回客戶(hù)端的連接請(qǐng)求,重新向用戶(hù)登錄模塊發(fā)送用戶(hù)登錄信息輸入信號(hào)。
token生成模塊用于:客戶(hù)端與服務(wù)端連接成功、且確認(rèn)用戶(hù)登錄信息正確后,生成與用戶(hù)登錄信息對(duì)應(yīng)的長(zhǎng)token、以及與長(zhǎng)token關(guān)聯(lián)的短token;分別向客戶(hù)端和服務(wù)端上的用戶(hù)登錄狀態(tài)信息保存模塊發(fā)送用戶(hù)登錄狀態(tài)信息保存信號(hào);
token生成模塊確認(rèn)的正確的用戶(hù)登錄信息需要同時(shí)滿(mǎn)足以下條件:用戶(hù)登錄信息合法、并且不屬于機(jī)器人的攻擊行為;若服務(wù)端認(rèn)為用戶(hù)登錄信息的輸入行為屬于機(jī)器人的攻擊行為時(shí),token生成模塊會(huì)對(duì)用戶(hù)進(jìn)行極驗(yàn)驗(yàn)證,若驗(yàn)證通過(guò),則確定不屬于機(jī)器人的攻擊行為,否則確定屬于機(jī)器人的攻擊行為。
用戶(hù)登錄狀態(tài)信息保存模塊用于:收到用戶(hù)登錄狀態(tài)信息保存信號(hào)后,保存新生成的長(zhǎng)短token、以及用戶(hù)登錄信息,保存的長(zhǎng)短token、以及用戶(hù)登錄信息即為用戶(hù)登錄狀態(tài)信息定位模塊中的用戶(hù)登錄狀態(tài)信息。
用戶(hù)登錄狀態(tài)信息讀取模塊用于:收到用戶(hù)登錄狀態(tài)信息信號(hào)后,讀取用戶(hù)登錄狀態(tài)信息中的長(zhǎng)短token和用戶(hù)登錄信息。
用戶(hù)登錄狀態(tài)信息使用模塊用于:用戶(hù)在APP上執(zhí)行需要用戶(hù)登錄狀態(tài)信息的使用請(qǐng)求時(shí),向服務(wù)端發(fā)送包含有當(dāng)前用戶(hù)對(duì)應(yīng)的短token的使用請(qǐng)求。
token驗(yàn)證模塊用于:用戶(hù)在客戶(hù)端上使用APP時(shí),根據(jù)服務(wù)端的當(dāng)前時(shí)間t服、長(zhǎng)token的過(guò)期時(shí)間t長(zhǎng)和短token的過(guò)期時(shí)間t短,判斷長(zhǎng)短token是否過(guò)期:
若長(zhǎng)token過(guò)期(t長(zhǎng)-t服≤2),此時(shí)無(wú)論短token是否過(guò)期,均向用戶(hù)登錄模塊發(fā)送用戶(hù)登錄信息輸入信號(hào);
若長(zhǎng)token未過(guò)期(t長(zhǎng)-t服>2),短token過(guò)期(t短-t服≤2),向短token更換模塊發(fā)送帶有長(zhǎng)token的更換短token請(qǐng)求;
若長(zhǎng)短token均未過(guò)期(t長(zhǎng)-t服>2、且t短-t服>2),則不進(jìn)行任何操作。
短token更換模塊用于:收到更換短token請(qǐng)求、并確認(rèn)短token請(qǐng)求中的長(zhǎng)token有效后,根據(jù)自身保存的與客戶(hù)端相同的長(zhǎng)token,重新生成短token;分別向客戶(hù)端和服務(wù)端上的用戶(hù)登錄狀態(tài)信息保存模塊發(fā)送用戶(hù)登錄狀態(tài)信息保存信號(hào)。
用戶(hù)登出模塊用于:當(dāng)用戶(hù)在APP上進(jìn)行主動(dòng)登出的操作時(shí),將用戶(hù)登錄狀態(tài)信息保存模塊中當(dāng)前用戶(hù)的用戶(hù)登錄狀態(tài)信息刪除。
本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。