管理关联域中域的 cookie

Managing cookies for a domain in Associated Domains

使用 NSHTTPCookieStorage 我想读取和设置 Safari 也用于与应用程序链接的 Associated Domain 的全局 cookie

但是关于关联域的文档非常少,我只找到了共享凭据的文档 https://developer.apple.com/documentation/security/shared_web_credentials

webcredentials:mydomain.com

我需要的是

cookies:mydomain.com

那么如何管理 Associated Domain 的 cookie?

我认为使用当前 API 不可能做到这一点。

确实,雷达 exist 正是要求此功能。

从我在 iOS 11 中看到的情况来看,当应用程序具有域关联并尝试打开 SFSafariViewController 实例时,系统会要求用户授予许可,如果获得许可,将域的 cookie 传递给 Safari 视图控制器实例。 (在 iOS 10 中,Safari 视图控制器与 Safari 共享所有 cookie。)这种方法在 Facebook 和 Google 应用程序中使用,除此之外——它们呈现 Safari 视图控制器以获得会话令牌,他们用于后续网络访问。

编辑: 上面描述的功能似乎是由 SFAuthenticationSession 处理的。系统提示用户允许数据共享,并显示一个带有 URL 的 Safari 视图控制器。您还提供了一个 URL 方案,打开的 URL 必须使用 SSO 令牌调用该方案。

documentation 说:

Cookies are not shared among applications in iOS.

所以无法从 Safari 访问 cookie。

要访问与特定 URL 关联的本地应用程序 cookie,请使用 this method:

func cookies(for URL: URL) -> [HTTPCookie]?