如何清除macOS上应用程序中使用的wxWEBVIEW_WEBKIT的已保存cookie?

时间:2016-12-14 02:15:01

标签: macos webview webkit wxwidgets

我正在开发一个基于wxWidgets的应用程序,该应用程序使用WebView进行基于Web的OAuth登录到网站。网站的OAuth登录过程使用cookie在经过身份验证后缓存登录令牌,以便您可以在必要时再次完成登录过程,而无需重新进行身份验证。我在应用程序的macOS版本中使用的WebView后端实现wxWEBVIEW_WEBKIT在重新启动应用程序之间保留了cookie,甚至重新启动了操作系统。这使得测试登录过程变得困难。

WebView后端在哪里持久保存这些cookie?我该如何清除它们?

我已经尝试清除Safari中的cookie无济于事,我删除了opensnoop捕获的应用程序文件访问中看到的所有明显的缓存文件,但缓存的登录仍然存在。

1 个答案:

答案 0 :(得分:0)

根据a response on the wx-users listwxWEBVIEW_WEBKIT后端是一个简单的macOS WebView

正如How can I remove cookies stored by WebView in Cocoa application?中所述,在macOS 10.11(El Capitan)及更高版本中,每个应用程序的WebView都有自己的cookie存储空间,并且无法访问彼此的cookie。

我找不到手动清除应用程序cookie的方法;我尝试从*.binarycookies删除相关的~/Library/Cookies文件,但这没有任何效果。我仍然不清楚存储cookie的位置。

但是,我可以使用NSHTTPCookieStorage API以编程方式删除Cookie,遵循https://stackoverflow.com/a/8486398/60422中的代码段。我最后只是为我的应用程序添加了一个菜单项。