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验证登录状态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!