For an iOS 8 app I want to use a WKWebView
for a custom authentication ViewController that I'm building. However, I can't seem to figure out how to clear the stored cookies for the WKWebView
. Is it not possible at all, right now?
I don't have control over the server side, and the service is sending what looks like a permanent (or at least a long lived) cookie when the user logs in successfully. The problem is, if the user wants to change their login, then it becomes impossible, because even if the user logs out and presses login again, then the server automatically redirects using the stored cookies and logs them back again.
Open to ideas and suggestions, thanks!
In UIWebView
it was simple to clear stored cookies, all you had to do was this:
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies])
{
[storage deleteCookie:cookie];
}
But, the WKWebView
does not seem to use the NSHTTPCookieStorage because I've already tried to do this before loading the request in the WKWebView
! :(
It seems like NSHTTPCookieStorage
is now being used in iOS 8.2 to correctly clear cookies, as required. I had shipped an app which would run this code prior to opening a WKWebView
based login:
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies])
{
[storage deleteCookie:cookie];
}
Where earlier than iOS 8.2 the website would auto-login using the saved cookies, it now correctly asks the user to re-login. All this happened without me shipping an update to the app. :)
Thanks for the heads-up @jackreichert !