当前位置: 移动技术网 > 移动技术>移动开发>IOS > iOS中关于Cookie验证登录状态

iOS中关于Cookie验证登录状态

2019年07月24日  | 移动技术网移动技术  | 我要评论

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验证登录状态,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网