iOS關於Cookie驗證登錄狀態


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM