iOS 13 beta WebKit 中断了对 cookie 的支持

iOS 13 beta WebKit breaks support for cookies

我有一个基于 Cordova 的应用程序,目前拥有相对较大的用户群。到目前为止没问题,除了 Apple 不会修复的 this one。不过没关系,我们创建了丑陋的解决方法只是为了继续前进...

但是,iOS13(测试版 8)来了,我们了解到此版本中的 WebKit 根本 不会将 cookie 发送回服务器。一次都没有,一开始就没有——从来没有。 iOS 13 提前几周发布,当所有用户都升级到它并且我们的应用程序停止工作时,我根本不知道我们该怎么办...

我们使用 cookie 进行会话管理,没什么特别的,基于经典的旧 Jetty 后端。我为首次使用问题所做的解决方法是在每个请求上将 jsessionid 参数附加到 URL ,然后在服务器端剥离它,转换为 cookie 并进一步发送到链中。假设 WebKit 停止发回 cookie,我不知道一直使用它是否安全。以下是一些待处理的相关错误,但 Apple 甚至不太可能查看它们:

有人遇到过类似的问题吗?你如何解决?

我的 ionic 3 应用程序遇到了同样的问题。 我找到了解决方法:

通过将来自 rxjs 的 API 调用替换为本机 objective C http 调用,cookie 从后端的 http 响应中保持良好。 也许,你可以试试这个...

添加这个插件https://github.com/oracle/cordova-plugin-wkwebview-file-xhr,它拦截XHR请求并由这个插件处理它们。 对我有用。

它已被 WebKit team 确认并修复,并在 iOS 13.2 中发布。我测试了测试版,现在似乎可以使用了。