iOS中關(guān)于Cookie驗(yàn)證登錄狀態(tài)
1、第一次進(jìn)入應(yīng)用,登錄獲取Cookie,此時(shí)如果用到的是AFN去獲取接口數(shù)據(jù),Cookie已經(jīng)寫(xiě)入了,所以無(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寫(xiě)入,然后進(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)怎么定義,前端只要判斷是否過(guò)了有效期,如果過(guò)了有效期,如果過(guò)了有效期,就需要用戶重新登錄,反之則不需要。
以上所述是小編給大家介紹的iOS中關(guān)于Cookie驗(yàn)證登錄狀態(tài),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
iOS開(kāi)發(fā)之隱藏導(dǎo)航欄線的簡(jiǎn)單代碼
這篇文章主要介紹了iOS開(kāi)發(fā)之隱藏導(dǎo)航欄線的簡(jiǎn)單代碼,需要的朋友可以參考下2017-10-10
詳解iOS應(yīng)用UI開(kāi)發(fā)中的九宮格坐標(biāo)計(jì)算與字典轉(zhuǎn)換模型
這篇文章主要介紹了iOS應(yīng)用UI開(kāi)發(fā)中的九宮格坐標(biāo)計(jì)算與字典轉(zhuǎn)換模型,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-01-01
iOS tableView上拉刷新顯示下載進(jìn)度的問(wèn)題及解決辦法
這篇文章主要介紹了 iOS tableView上拉刷新顯示下載進(jìn)度的問(wèn)題及解決辦法,需要的朋友可以參考下2017-03-03

