繁体   English   中英

离子 6 angular 电容器组 cookies 上 ios

[英]Ionic 6 angular capacitor set cookies on ios

我有一个带有 angular 的 ionic 6 应用程序,我正在使用外部 API 登录用户并检索一些数据。

当用户进行身份验证时,服务器以Set-cookie header 响应; 在浏览器和 android 应用程序上一切正常。

在 iOS 上,响应中收到的 set-cookie header 似乎什么也没做。

我也在尝试在我的app.component.ts上使用cordova-plugin-wkwebview-inject-cookie

this.platform.ready().then(() => {
  if (this.platform.is('ios')) {
    wkWebView.injectCookie(environment.config.baseUrl, '/');
  }
});

但是 cookie 没有被存储,所以每个下一个请求都会得到 401 响应:

在此处输入图像描述

经过大量搜索这个问题,我在电容器 github 问题中找到了这个线程

长话短说:这不是问题或问题,实际上这是 Apple 做出的安全决定,就像 Thomas Vidas 在同一线程中所说:

这是几件事,主要是它是 Apple 在 iOS 14 及更高版本上的故意更改,称为“智能跟踪预防”(ITP),它禁用了未列为应用绑定域的域上的所有 cookies。 这不是由于电容器://协议。 ITP 做到了,因此 document.cookie 调用旨在静默失败以阻止用户跟踪。 如果您的 server.hostname 和 App Bound 域设置正确,它可能会起作用,但可能会产生其他意想不到的后果(例如 Apple 可能会拒绝您的应用程序),因此我们不建议这样做。

因此,我建议您阅读整个线程以获得一些见解,因为认为电容器团队没有解决方案。

我希望它会帮助你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM