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验证登录状态,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
N - Optimal Milking POJ - 2112(二分 + Floyd + 二分图多重匹配)
1042 Shuffling Machine (20分)
关于B站播放器ijkPlayer的集成和遇到的bug(持续回复解答,ios)(QQ:479069761)
网友评论