Синхронизация с Safari - расширение для SFSafariViewController

Я знаю это SFSafariViewController имеет частное хранилище cookie и другие реализации. Тем не менее, я знаю, что мы можем написать расширение для каждого (каждой собственной системы) класса Swift. Мне нужно либо поделиться куки с родным Safari, либо открыть Safari из моего приложения с некоторым запросом заголовка. По крайней мере, как создать API для получения / настройки файлов cookie?

1 ответ

Решение
  1. Совместное использование файлов cookie между SFSafariVC и собственным Safari было отключено в iOS >= 11.

На WWDC Apple объявила об изменении поведения Safari View Controller с iOS 11 в том смысле, что сохраненные данные (файлы cookie, локальное хранилище и т. Д.) Больше не будут совместно использоваться экземплярами Safari View Controller. Мы подтвердили это собственными силами с бета-версией, и это, кажется, независимо подтверждают ребята из Branch.

Из репо AppAuth-iOS: пользователь whitehatguy

  1. Единственный API для SFSafariVC - это создание нового экземпляра для данного URL. Вы не можете устанавливать или изменять куки.

Если вам нужно выполнить пользовательский код, взгляните на WKWebView (iOS> = 8) / UIWebView (iOS <8). Полезные ответы: Получение куки в WKWebView

SFAuthenticationSession был создан, чтобы разрешить потоки аутентификации SSO/OAuth, которые делят куки с собственным Safari, но у разработчиков нет прямого доступа.

Класс, который управляет совместным использованием одноразового входа в систему веб-службы вместе с файлами cookie и данными веб-сайта между Safari и приложением, которое также можно использовать для автоматического входа в систему для других связанных приложений.

Два случая, когда вы будете использовать SFAuthenticationSession:

  • Вход в службу третьей стороны с использованием протокола аутентификации (например, OAuth). Эта опция хорошо работает для приложений социальных сетей.
  • Обеспечение единого входа (SSO) для приложений. Этот вариант хорошо работает для корпоративных компаний, у которых на одном устройстве установлено много приложений.

Документация SFAuthenticationSession от Apple

Другие вопросы по тегам