iOS中关于Cookie验证登录状态
程序员文章站
2024-02-13 09:30:28
1、第一次进入应用,登录获取cookie,此时如果用到的是afn去获取接口数据,cookie已经写入了,所以无需处理,每次请求的时候,会自动将该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还有有效期,就看后台怎么定义,前端只要判断是否过了有效期,如果过了有效期,如果过了有效期,就需要用户重新登录,反之则不需要。
以上所述是小编给大家介绍的ios中关于cookie验证登录状态,希望对大家有所帮助
上一篇: iOS中设置父视图透明但内容不透明的方法
下一篇: 详解iOS中多个网络请求的同步问题总结