OS X中每个WebView单独的cookie jar

时间:2015-02-11 14:28:00

标签: macos cocoa cookies webview

我一直在努力实现在macOS中为每个WebView设置一个唯一(不共享)cookie jar的目标(对于iOS,Cookie管理的工作方式不同)。

在阅读了大量StackOverflow问题并深入研究文档之后,我在这些文章中找到了最接近我问题的解决方案:

我已经使用它们设置了一个示例应用:https://github.com/jjconti/swift-webview-isolated

基本思想是从WebResourceLoadDelegate和WebPolicyDelegate协议实现必要的方法,并使用BSHTTPCookieStorage存储和检索cookie。此外,我的示例应用程序允许保存cookieStorage对象,以便在将来的执行中重新加载。

不幸的是,该应用在每个网站上都无法正常运行(文章的作者针对的是某个特定的网站)。例如Gmail和NewRelic,您在登录后(或执行某些操作后)立即注销。这让我怀疑cookie存储实现中的一个错误,我还没能找到它。

有人能告诉我是否有我失踪的东西吗?

1 个答案:

答案 0 :(得分:0)

问题是没有JS级cookie隔离。 document.cookie仍指向共享cookie jar。要实现真正的cookie隔离webview,您必须覆盖document。的cookie属性。

您可以尝试我的实施: http://cyyuen.github.io/ADCookieIsolatedWebView

它适用于使用document.cookie获取Cookie的网站,例如Dropbox.com。但是,没有实现setter。