Управление файлами cookie для домена в связанных доменах
С помощью NSHTTPCookieStorage
я хочу прочитать и установить глобальные файлы cookie, которые Safari также использует для Associated Domain
связано с приложением
Однако документ о связанных доменах довольно скудный, и я нашел только документ для общих учетных данных https://developer.apple.com/documentation/security/shared_web_credentials
webcredentials:mydomain.com
мне нужно что-то вроде
cookies:mydomain.com
так как управлять куки для Associated Domain
?
2 ответа
Я не верю, что это возможно при использовании текущего API.
Действительно, существуют радары, которые точно запрашивают эту функциональность.
Из того, что я видел в iOS 11, когда приложение связывает домен и пытается открыть SFSafariViewController
Например, система запрашивает у пользователя разрешение, которое в случае предоставления передает куки-файлы домена экземпляру контроллера представления Safari. (В iOS 10 контроллер представления Safari делит все файлы cookie с Safari.) Этот метод используется, среди прочего, в приложениях Facebook и Google - они представляют контроллер представления Safari для получения токена сеанса, который они используют для последующего доступа к сети.
Редактировать: Кажется, что функциональность, описанная выше, обрабатывается SFAuthenticationSession
, Система предлагает пользователю разрешить совместное использование данных, и контроллер представления Safari отображается с указанным URL-адресом. Вы также предоставляете схему URL, которую открытый URL должен вызывать с помощью токена SSO.
В документации сказано:
Файлы cookie не передаются между приложениями в iOS.
Таким образом, нет доступа к файлам cookie из Safari.
Чтобы получить доступ к локальным файлам cookie приложения, связанным с конкретным URL, используйте этот метод:
func cookies(for URL: URL) -> [HTTPCookie]?