[英]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.