iOS中關(guān)于Cookie驗證登錄狀態(tài)
1、第一次進(jìn)入應(yīng)用,登錄獲取Cookie,此時如果用到的是AFN去獲取接口數(shù)據(jù),Cookie已經(jīng)寫入了,所以無需處理,每次請求的時候,會自動將該cookie傳給后臺去驗證
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)用的時候,先判斷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,同時要將NSUserDefault中的Cookie刪除
(1)清除請求頭中的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還有有效期,就看后臺怎么定義,前端只要判斷是否過了有效期,如果過了有效期,如果過了有效期,就需要用戶重新登錄,反之則不需要。
以上所述是小編給大家介紹的iOS中關(guān)于Cookie驗證登錄狀態(tài),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
iOS利用UITableView設(shè)置全屏分隔線的3種方法總結(jié)
這篇文章主要介紹了關(guān)于iOS利用UITableView設(shè)置全屏分隔線的幾種方法的相關(guān)對比,分析這三種的各自優(yōu)缺點,并且分享了設(shè)置UITableView的單元格分割線離屏幕左右的距離為0的方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。2017-11-11iOS開發(fā)上下滑動UIScrollview隱藏或者顯示導(dǎo)航欄的實例
下面小編就為大家分享一篇iOS開發(fā)上下滑動UIScrollview隱藏或者顯示導(dǎo)航欄的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01