1、第一次進入應用,登錄獲取Cookie,此時如果用到的是AFN去獲取接口數據,Cookie已經寫入了,所以無需處理,每次請求的時候,會自動將該cookie傳給後台去驗證
2、將Cookie緩存到本地:
NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject: cookiesData forKey:@"Cookie"]; [defaults synchronize];
3、當第二次進入應用的時候,先判斷NSUserDefault是否有緩存的Cookie,如果有,需要將cookie寫入,然後進入應用
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"Cookie"]]; NSHTTPCookieStorage * cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie * cookie in cookies){ [cookieStorage setCookie: cookie]; }
4、當用戶選擇退出登錄,需要清除緩存中的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];
注意:關於Cookie還有有效期,就看後台怎麼定義,前端只要判斷是否過了有效期,如果過了有效期,如果過了有效期,就需要用戶重新登錄,反之則不需要。
以上所述是小編給大家介紹的iOS中關於Cookie驗證登錄狀態,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!