Bei einer iOS 8-App möchte ich WKWebView
für einen benutzerdefinierten Authentifizierungs-ViewController verwenden, den ich gerade erstelle. Ich kann jedoch nicht herausfinden, wie die gespeicherten Cookies für WKWebView
gelöscht werden. Ist das überhaupt nicht möglich?
Ich habe keine Kontrolle über die Serverseite und der Dienst sendet etwas, das wie ein permanenter (oder mindestens langlebiger ) Cookie aussieht, wenn sich der Benutzer erfolgreich anmeldet. Das Problem ist, wenn der Benutzer seine Anmeldung ändern möchte, wird es unmöglich, denn selbst wenn sich der Benutzer abmeldet und erneut auf die Anmeldung klickt, leitet der Server die gespeicherten Cookies automatisch um und protokolliert sie zurück wieder.
Offen für Ideen und Vorschläge, danke!
In UIWebView
war es einfach gespeicherte Cookies zu löschen, alles was Sie tun mussten war:
Aber die WKWebView
scheint die NSHTTPCookieStorage nicht zu benutzen, weil ich das schon versucht habe, bevor ich die Anfrage in WKWebView
! : (
Es scheint, dass NSHTTPCookieStorage
jetzt verwendet wird in iOS 8.2 verwendet wird, um Cookies bei Bedarf korrekt zu löschen. Ich hatte eine App ausgeliefert, die diesen Code vor dem Öffnen einer WKWebView
basierten Anmeldung ausführen würde:
Wenn sich die Website früher als iOS 8.2 automatisch mit den gespeicherten Cookies anmeldet, wird der Benutzer nun aufgefordert, sich erneut anzumelden. All dies ist passiert, ohne dass ich ein Update für die App gesendet habe. :)
Danke für das heads-up @jackreichert!
Die Antwort wurde mir in den internen Apple-Foren gegeben: Verwenden Sie einen veränderbaren NSURLRequest und setzen Sie HTTPShouldHandleCookies
auf NO:
Es werden keine Cookies an die Website gesendet, sodass Sie jedes Mal den Anmeldebildschirm (zum Testen) erhalten.
Tags und Links authentication ios8 wkwebview