今天遇到一个问题,当用户修改密码之后,重新跳到登录页,随便输入密码也可登录,并且可以正常返回用户的账户信息
后来发现 只要是NSURLRequest请求,内部会默认保存服务器返回的cookie并保存在沙盒下。
等修改密码之后,我们调用
NSHTTPCookieStorage *cookie = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for(NSHTTPCookie *cook in [cookie cookies]){
NSLog(@"cookie:---%@",cook);
}
会打印出本地cookie
我们可以在用户修改密码或者用户退出登录之后,调用以下方法清空cookie
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookieArray = [NSArray arrayWithArray:[cookieJar cookies]];
for (id obj in cookieArray) {
[cookieJar deleteCookie:obj];
}
或者更改cookie本地策略
//NSHTTPCookieAcceptPolicyAlways:保存所有cookie,这个是默认值
//NSHTTPCookieAcceptPolicyNever:不保存任何响应头中的cookie
//NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain:只保存域请求匹配的cookie
[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever];