Gir*_*iga 5 cookies ios cordova wkwebview cordova-plugin-ionic-webview
我正在为我的 Cordova 移动应用程序使用 iOS 14 设备/模拟器,该应用程序使用 cordova-plugin-ionic-webview 并启用 WkWebView 设置。
我在 config.xml 中设置了以下选项
<access origin="myapp://mobileapp" />
<allow-navigation href="myapp://mobileapp" />
Run Code Online (Sandbox Code Playgroud)
这使得我所有的 xhr 调用都有“ origin:myapp://mobileapp ”标头。我已经正确定义了所有 CORS 标头。
现在我的身份验证 XHR 调用有 2 个 API(a)身份验证和(b)逐步操作。API (b) 将使用 API (a) 设置的 HTTPOnly 安全 cookie 以便做出适当响应。
上述两个 API 都可以在 UIWebview、iOS 13.5、iOS 13.7 模拟器和设备上完美运行。但在 iOS 14、iOS 13.3 中失败。在分析时,我发现 API (a) 中发送的 cookie 未存储在 WkWebview 中,因此在调用 API (b) 时不会发送它们。所以第二个 API 无法完成。
我看到cookie 在首次执行时被忽略,跟踪预防和wkwebview 错误,但无法识别问题。
当我在应用程序内浏览器中与 WkWebview 一起使用 API 时,API 运行良好,但仅在主 cordova 视图中失败。
使用 cusotm origin和跨平台 XHR 调用时,是否必须在 ionic-webviw 插件中设置任何特殊设置?
我的 XHR 调用是对“* https://mydomain.app.com/api/firstapi*”和“* https://mydomain.app.com/api/secondapi*”进行的,而firstapi将发送标头“ set- cookie ”,域设置为“.app.com”。那么,当我们使用自定义来源进行 XHR 调用时,这些类型的 cookie 将被视为第三方 cookie 还是第一方 cookie?
这里的任何帮助都将非常有帮助。我正在寻找使用 HTTPOnly cookie 实现 Cordova+WkWebView+XHR 登录调用的正确方法
XCode 12 + iOS 14 永久停止同步第三方 cookie,引入智能跟踪预防技术。苹果对此的解决方案是使用App Bound 域。
不幸的是,目前我们无法修复。有像nativeXHR这样的插件试图通过将API调用路由到本机代码来解决,但不会将cookie同步到wkwebview的cordova实例。
更新:
如果只想使用一台服务器,Cookie 仍然可以同步。在 config.xml 中设置以下首选项以匹配您的域。这样,origin 将被设置为 app://yourdomain.com。因此 wkwebview 会将 cookie 与域/子域 *.yourdomain.com 同步。
<preference name="scheme" value="https" />
<preference name="hostname" value="yourdomain.com" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3961 次 |
| 最近记录: |