У меня есть приложение iOS, которое аутентифицируется с помощью Uber API с использованием OAuth2 в UIWebView
. При обновлении до iOS 9 я столкнулся с проблемой ATS, блокирующей запрос https для страницы входа. Затем я добавил исключение для страницы входа в Uber, но затем заметил, что страница входа в систему делает несколько других запросов в Facebook, Amazon Web Services и других веб-сайтах, все из которых блокируются ATS.
Я не хочу содержать список исключений для страницы входа в Uber, так как Uber может легко изменить свою страницу, и мое приложение не будет иметь правильных исключений. Поэтому я решил сделать SFSafariViewController
выстрел.
Я могу завершить процесс OAuth2 с помощью SFSafariViewController
, проблема в том, что при завершении аутентификации существует некоторый тип файлов cookie, хранящихся в Uber. Если я хочу аутентифицировать другую учетную запись, и я снова вызываю SFSafariViewController
, cookie будет получен из предыдущей проверки подлинности, и нет возможности аутентифицировать другую учетную запись. Я обошел это с помощью UIWebView
, удалив файл cookie через NSHTTPCookieStorage
, но я не вижу способа удалить cookie из SFSafariViewController
.