angular - 从不同域上的 API 发出 cookie 时,Safari iOS "Prevent Cross Site Tracking"选项是否有解决方法?

标签 angular asp.net-core safari mobile-safari

是否有任何解决方法可以让我保持“防止跨站点跟踪”选项处于启用状态(因为它是默认设置,所以每个用户都会启用它),并从我启用的后端 api 发出 CORS cookie与我的 Angular 应用程序不同的域?

我的申请流程如下: 1.用户登录 2. 服务器验证,发布 JWT 并将 JWT 存储在 HttpOnly cookie 中 3. 所有 Angular 请求都有 {withCredentials: true}

这在....windows 桌面浏览器上工作得很好。但是,当我尝试在 Safari iOS 和 mac Safari 上登录时,cookie 不会保存,也不会随后续请求一起发送。

我发现禁用“防止跨站点跟踪”选项有效,但我不能指望我的所有用户都禁用此选项才能使用我的应用。

目前是否有任何解决方法?

最佳答案

我建议将您的网站和 api 放在同一个域中,例如https://web.mydomain.comhttps://api.mydomain.com .这应该不会太难实现 - 我还没有在网上找到任何简单的技术解决方案来强制 iOS 上的 Safari 在不更改设置的情况下允许这样做。

关于angular - 从不同域上的 API 发出 cookie 时,Safari iOS "Prevent Cross Site Tracking"选项是否有解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56972162/

相关文章:

javascript - 当我只告诉它调用一个函数时,Blazor 服务器应用程序中的 JSRuntime.InvokeVoidAsync 调用多个函数

angular - 如何在不先构建的情况下运行 ngserve

angular - OnScroll 事件 Ionic 2

angular - 如何在 angular 2 指令中有条件地插入/删除主机 DOM 元素

c# - 无法访问 ASP.NET Core 后台服务中已处置的对象

azure - 部署 ASP.NET Core 应用服务,但未找到 Azure DevOps 路径

macos - 使用 Safari 组件显示网页的应用程序的内容权限?

ios - 如何在iOS Safari中启用iframe滚动条

javascript - HTML5 <audio> 流 OSX Safari 错误

css - 在 Angular 4 元素中安装了 ng-bootstrap CSS,但它似乎不起作用