SFSafariViewController
очень ограничен в настройках, как видно из документации: https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller. Apple намеренно хранит файлы cookie и конфигурацию сафари отдельно от приложений, которые используют его в целях безопасности и конфиденциальности.
Я не знаю, если это именно то, что вы видите, но я столкнулся с аналогичной проблемой, когда, если пользователь вошел в систему через SFSafariViewControler
, а затем вышел из системы (не используя SFSafariViewController
), затем войдя снова, он не будет запрашивать логин / пароль, потому что он все еще кэшируется в браузере.
Практически единственными двумя вариантами для этого являются:
- Порядок выхода из системы происходит в пределах
SFSafariViewController
, чтобы вы могли таким образом удалить файлы cookie. - У Apple есть новый класс потока аутентификации
ASWebAuthenticationSession
(документы здесь ), который имеет новое свойство, которое вы можете установить, под названием prefersEphemeralWebBrowserSession
, которое, по сути, открывает браузер в приватном режиме. Это предотвращает сохранение любых файлов cookie в браузере. Единственный недостаток - свойство prefersEphemeralWebBrowserSession
доступно только в iOS 13+.
Если это та же проблема, с которой вы столкнулись, и вы можете ограничить ваше приложение iOS 13+, то я бы предложил маршрут ASWebAuthenticationSession
, в противном случае вам может понадобиться найти другое решение ,