iOS中關(guān)于Cookie驗(yàn)證登錄狀態(tài)
1、第一次進(jìn)入應(yīng)用,登錄獲取Cookie,此時(shí)如果用到的是AFN去獲取接口數(shù)據(jù),Cookie已經(jīng)寫入了,所以無(wú)需處理,每次請(qǐng)求的時(shí)候,會(huì)自動(dòng)將該cookie傳給后臺(tái)去驗(yàn)證
2、將Cookie緩存到本地:
NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject: cookiesData forKey:@"Cookie"];
[defaults synchronize];
3、當(dāng)?shù)诙芜M(jìn)入應(yīng)用的時(shí)候,先判斷NSUserDefault是否有緩存的Cookie,如果有,需要將cookie寫入,然后進(jìn)入應(yīng)用
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"Cookie"]];
NSHTTPCookieStorage * cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie * cookie in cookies){
[cookieStorage setCookie: cookie];
}
4、當(dāng)用戶選擇退出登錄,需要清除緩存中的cookie,同時(shí)要將NSUserDefault中的Cookie刪除
(1)清除請(qǐng)求頭中的Cookie:
NSHTTPCookieStorage *manager = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookieStorage = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
for (NSHTTPCookie *cookie in cookieStorage) {
[manager deleteCookie:cookie];
}
(2)清除NSUserDefault中的Cookie
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"Cookie"];
[defaults synchronize];
注意:關(guān)于Cookie還有有效期,就看后臺(tái)怎么定義,前端只要判斷是否過了有效期,如果過了有效期,如果過了有效期,就需要用戶重新登錄,反之則不需要。
以上所述是小編給大家介紹的iOS中關(guān)于Cookie驗(yàn)證登錄狀態(tài),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
iOS利用UITableView設(shè)置全屏分隔線的3種方法總結(jié)
這篇文章主要介紹了關(guān)于iOS利用UITableView設(shè)置全屏分隔線的幾種方法的相關(guān)對(duì)比,分析這三種的各自優(yōu)缺點(diǎn),并且分享了設(shè)置UITableView的單元格分割線離屏幕左右的距離為0的方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。2017-11-11
iOS開發(fā)上下滑動(dòng)UIScrollview隱藏或者顯示導(dǎo)航欄的實(shí)例
下面小編就為大家分享一篇iOS開發(fā)上下滑動(dòng)UIScrollview隱藏或者顯示導(dǎo)航欄的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01

