iOS中关于Cookie验证登录状态
1、第一次进入应用,登录获取Cookie,此时如果用到的是AFN去获取接口数据,Cookie已经写入了,所以无需处理,每次请求的时候,会自动将该cookie传给后台去验证
2、将Cookie缓存到本地:
NSData*cookiesData=[NSKeyedArchiverarchivedDataWithRootObject:[[NSHTTPCookieStoragesharedHTTPCookieStorage]cookies]]; NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefaults]; [defaultssetObject:cookiesDataforKey:@"Cookie"]; [defaultssynchronize];
3、当第二次进入应用的时候,先判断NSUserDefault是否有缓存的Cookie,如果有,需要将cookie写入,然后进入应用
NSArray*cookies=[NSKeyedUnarchiverunarchiveObjectWithData:[[NSUserDefaultsstandardUserDefaults]objectForKey:@"Cookie"]]; NSHTTPCookieStorage*cookieStorage=[NSHTTPCookieStoragesharedHTTPCookieStorage]; for(NSHTTPCookie*cookieincookies){ [cookieStoragesetCookie:cookie]; }
4、当用户选择退出登录,需要清除缓存中的cookie,同时要将NSUserDefault中的Cookie删除
(1)清除请求头中的Cookie:
NSHTTPCookieStorage*manager=[NSHTTPCookieStoragesharedHTTPCookieStorage]; NSArray*cookieStorage=[[NSHTTPCookieStoragesharedHTTPCookieStorage]cookies]; for(NSHTTPCookie*cookieincookieStorage){ [managerdeleteCookie:cookie]; }
(2)清除NSUserDefault中的Cookie
[[NSUserDefaultsstandardUserDefaults]removeObjectForKey:@"Cookie"]; [defaultssynchronize];
注意:关于Cookie还有有效期,就看后台怎么定义,前端只要判断是否过了有效期,如果过了有效期,如果过了有效期,就需要用户重新登录,反之则不需要。
以上所述是小编给大家介绍的iOS中关于Cookie验证登录状态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!