Передать куки в UIWebView - iOS

У меня есть приложение для iOS, которое позволяет пользователю использовать встроенные в Apple фреймворки Аккаунты / Социальные сети для входа в систему через Facebook.

Один вопрос, который у меня есть, есть ли способ передать пользовательский файл cookie авторизации от ACAccountStore к UIWebView?

Это будет означать, что, если пользователь нажимает на ссылку и отображается встроенная веб-страница просмотра, он сможет комментировать / нравится / и т. Д. Без необходимости входа в веб-представление тоже.

Спасибо,

Дэн

1 ответ

Решение

Я думаю, что это не будет возможно, если вы не контролируете службу, с которой вы хотите пройти аутентификацию в указанных веб-обзорах.

Внедрение произвольных файлов cookie в UIWebView возможно, как описано, например, здесь: возможно ли установить cookie вручную, используя sharedHTTPCookieStorage для UIWebView?,

Кэшированные токены авторизации могут быть получены из ACAccountCredential, Но токены OAuth не являются файлами cookie для аутентификации сессии.

Facebook делает это. Всякий раз, когда веб-просмотр открывается в их клиенте iOS, пользователь автоматически аутентифицируется с помощью Facebook в этом веб-просмотре. Но у них есть контроль над собственной службой, поэтому они создали механизм для своего клиента iOS, чтобы запрашивать куки-файлы с аутентификацией сеанса (которые они затем внедряют в веб-просмотры).

В целом, будучи сторонним разработчиком, вы не сможете воспроизвести это поведение. Если, конечно, данный сервис не имеет такого механизма для собственных нужд, и вы делаете реверс-инжиниринг.

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