Dhi*_*pta 8 authentication ios8 wkwebview
对于iOS 8应用程序,我想使用一个WKWebView我正在构建的自定义身份验证ViewController.但是,我似乎无法弄清楚如何清除存储的cookie WKWebView.现在根本不可能吗?
我无法控制服务器端,并且当用户成功登录时,服务正在发送看起来像永久(或至少是长寿)cookie的服务.问题是,如果用户想要更改他们的登录,那么就变得不可能,因为即使用户退出并再次按下登录,服务器也会使用存储的cookie自动重定向并再次将其记录下来.
欢迎提出想法和建议,谢谢!
于UIWebView它是简单的清除保存的cookies,所有你需要做的是这样的:
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies])
{
[storage deleteCookie:cookie];
}
Run Code Online (Sandbox Code Playgroud)
但是,WKWebView似乎没有使用NSHTTPCookieStorage,因为我已经尝试在加载请求之前执行此操作WKWebView!:(
答案在Apple内部论坛上提供给我:使用可变的NSURLRequest,并设置HTTPShouldHandleCookies为NO:
let req: NSMutableURLRequest = NSMutableURLRequest(URL:openURL)
req.HTTPShouldHandleCookies = false
webView.loadRequest(req)
Run Code Online (Sandbox Code Playgroud)
没有cookie发送到网站,因此您每次都会获得登录屏幕(用于测试).
好像NSHTTPCookieStorage现在正在在运行iOS 8.2正确清除Cookies使用,如需要.我已经发布了一个应用程序,可以在打开WKWebView基于登录名之前运行此代码:
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies])
{
[storage deleteCookie:cookie];
}
Run Code Online (Sandbox Code Playgroud)
在iOS 8.2之前,网站将使用保存的cookie自动登录,现在它正确地要求用户重新登录.所有这一切都发生在我没有发布应用程序的更新.:)
感谢单挑@jackreichert!
| 归档时间: |
|
| 查看次数: |
5864 次 |
| 最近记录: |