iOS中關于Cookie驗證登錄狀態【markdown】

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還有有效期,就看后臺怎么定義,前端只要判斷是否過了有效期,如果過了有效期,如果過了有效期,就需要用戶重新登錄,反之則不需要。

參考:http://www.cnblogs.com/wishT/p/6812993.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容