Ionic 离子6角电容器设置饼干上的ios

uurv41yg  于 2022-12-16  发布在  Ionic
关注(0)|答案(1)|浏览(139)

我有一个带Angular 的离子6应用程序,我正在使用外部API登录用户并检索一些数据。
当用户进行身份验证时,服务器使用Set-cookie报头进行响应;浏览器和Android应用程序都运行良好。
在iOS上,响应中接收到的set-cookie标头看起来什么也没做。
我也尝试在我的app.component.ts上使用cordova-plugin-wkwebview-inject-cookie

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

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

k5hmc34c

k5hmc34c1#

经过大量的搜索这个问题,我发现这个线程在电容器github问题;
长话短说:这不是一个问题,实际上这是苹果做出的一个安全决定,就像托马斯Vidas在同一个帖子中说的那样:
这有几个原因,最主要的一个是它是苹果在iOS 14和更高版本上的一个故意更改,称为“智能跟踪预防”(ITP),它禁用所有未列为应用绑定域的域上的cookie。这不是由于capacitor://协议。ITP使它如此文档化。cookie调用旨在静默失败,以防止用户跟踪。如果您的server.hostname和应用绑定域设置正确,它可能会工作,但可能会产生其他意想不到的后果(如苹果可能拒绝您的应用),所以我们不建议它。
因此,我建议您阅读整个帖子,从中获得一些见解,因为电容器团队认为没有解决方案。
希望对你有帮助!

相关问题