You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SFAuthenticationSession的Cookie限制、网站数据范围及跨实例共享问题问询

关于SFAuthenticationSession共享Cookie与网站数据的问题解答

我来帮你梳理一下这些关于SFAuthenticationSession的问题,结合Apple官方文档和实际开发经验逐一解答:

1. Cookie的共享存在哪些限制?

SFAuthenticationSession和用户的Safari浏览器共享Cookie池,但这个共享有不少严格的限制:

  • 域名同源限制:仅共享与认证会话中使用的域名属于同一注册域名(符合公共后缀列表,比如example.com和sub.example.com属于同一组,example.com和another-example.com则不属于)的Cookie,跨域名的Cookie完全不会被共享。
  • 隐私设置限制:如果用户在Safari中开启了「阻止跨网站跟踪」或者使用了隐私浏览模式,Cookie共享会被直接禁止,无论域名是否同源。
  • Cookie属性限制:
    • 带有SameSite=Strict的Cookie,只有当认证会话的顶级域名与Cookie的域名完全匹配时才会被共享;
    • SameSite=Lax的Cookie在跳转场景下可以正常共享;
    • SameSite=None的Cookie必须同时设置Secure属性才能被共享(因为SFAuthenticationSession强制要求使用HTTPS);
  • 第三方Cookie限制:在iOS 14+ / macOS 11+及以上版本中,第三方Cookie默认会被阻止,除非用户手动允许你的域名,或者你的域名被Apple列入了隐私例外名单。

2. 此处的“网站数据”具体包含哪些内容?

这里的「网站数据」指的是Safari浏览器中为网站存储的各类持久化/会话级数据,具体包括:

  • 本地存储(LocalStorage):持久化的键值对数据,除非用户手动清除,否则会一直保留;
  • IndexedDB:浏览器端的NoSQL数据库,用于存储大量结构化数据;
  • Web SQL数据库(虽然已被标准废弃,但部分网站仍在使用);
  • 缓存存储(Cache Storage):比如Service Worker用来缓存静态资源的存储区域;
  • 网站偏好设置:比如用户在网站上设置的主题、语言偏好等通过浏览器API持久化的设置;
  • 注意:会话存储(SessionStorage)是会话级别的数据,仅在当前浏览器会话中有效,不会在SFAuthenticationSession和Safari或其他实例之间共享。

3. 不同SFAuthenticationSession实例间Cookie未共享时的情况,以及查看Cookie的工具

特定类型Cookie才可传递的情况

当不同SFAuthenticationSession实例间出现Cookie未共享的问题时,确实只有符合特定条件的Cookie才能被传递:

  • 必须满足前面提到的域名同源限制;
  • Cookie的SameSite、Secure属性必须符合要求(比如SameSite=None必须搭配Secure);
  • 没有被Safari的隐私设置(比如跨网站跟踪阻止)拦截;
  • 如果是第三方Cookie,必须在系统设置中被用户允许。

查看SFAuthenticationSession中Cookie的工具

有几种方式可以查看实例中的具体Cookie:

  • Safari Web Inspector:这是开发阶段最常用的工具。当你的App运行在模拟器或真机上时,打开Mac上的Safari浏览器,开启「开发」菜单(在偏好设置-高级中勾选「显示开发菜单」),然后选择对应的设备和App的SFAuthenticationSession页面,在「存储」标签页就能看到所有的Cookie和网站数据;
  • 代码方式获取:在App中可以通过HTTPCookieStorage.shared来获取当前App可访问的Cookie,但只能获取符合同源策略的Cookie,且受隐私设置影响;如果你使用的是ASWebAuthenticationSession(SFAuthenticationSession的后续替代),还可以通过webAuthenticationSession.configuration.httpCookieStorage来访问对应的Cookie存储;
  • 注意:出于隐私保护,你无法直接获取其他域名的Cookie,即使是同一App中的不同认证实例,跨域名的Cookie也无法通过代码访问。

内容的提问来源于stack exchange,提问作者Locksleyu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:48:45