在我的应用程序中,我有一个UIWebview
加载linkedin身份验证页面以进行登录。用户登录后,Cookie将保存到应用程序中。
我的应用程序有一个与linkedin登录无关的退出按钮。因此,当用户单击此按钮时,他将从应用程序注销。我希望此注销操作也可以从应用程序中清除他的linkedin Cookie,以便用户完全注销。
在我的应用程序中,我有一个UIWebview
加载linkedin身份验证页面以进行登录。用户登录后,Cookie将保存到应用程序中。
我的应用程序有一个与linkedin登录无关的退出按钮。因此,当用户单击此按钮时,他将从应用程序注销。我希望此注销操作也可以从应用程序中清除他的linkedin Cookie,以便用户完全注销。
Answers:
根据这个问题,您可以浏览“ Cookie Jar”中的每个cookie并删除它们,如下所示:
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies]) {
[storage deleteCookie:cookie];
}
[[NSUserDefaults standardUserDefaults] synchronize];
只是想添加一些与此有关的信息。
在OS X 10.9 / iOS 7及更高版本中,您可以使用-resetWithCompletionHandler:从以下位置清除整个应用程序的cookie和缓存等sharedSession
:
清空所有cookie,缓存和凭据存储,删除磁盘文件,将正在进行的下载刷新到磁盘,并确保将来的请求在新的套接字上发生。
[[NSURLSession sharedSession] resetWithCompletionHandler:^{
// Do something once it's done.
}];
该for-in循环与deleteCookie:
喜欢的声音,同时枚举集合修改给我。(不知道,可能是个坏主意吗?)
如果有人在寻找Swift解决方案:
let storage = HTTPCookieStorage.shared
if let cookies = storage.cookies{
for cookie in cookies {
storage.deleteCookie(cookie)
}
}