Передать куки в UIWebView - iOS
У меня есть приложение для iOS, которое позволяет пользователю использовать встроенные в Apple фреймворки Аккаунты / Социальные сети для входа в систему через Facebook.
Один вопрос, который у меня есть, есть ли способ передать пользовательский файл cookie авторизации от ACAccountStore
к UIWebView
?
Это будет означать, что, если пользователь нажимает на ссылку и отображается встроенная веб-страница просмотра, он сможет комментировать / нравится / и т. Д. Без необходимости входа в веб-представление тоже.
Спасибо,
Дэн
1 ответ
Я думаю, что это не будет возможно, если вы не контролируете службу, с которой вы хотите пройти аутентификацию в указанных веб-обзорах.
Внедрение произвольных файлов cookie в UIWebView
возможно, как описано, например, здесь: возможно ли установить cookie вручную, используя sharedHTTPCookieStorage для UIWebView?,
Кэшированные токены авторизации могут быть получены из ACAccountCredential
, Но токены OAuth не являются файлами cookie для аутентификации сессии.
Facebook делает это. Всякий раз, когда веб-просмотр открывается в их клиенте iOS, пользователь автоматически аутентифицируется с помощью Facebook в этом веб-просмотре. Но у них есть контроль над собственной службой, поэтому они создали механизм для своего клиента iOS, чтобы запрашивать куки-файлы с аутентификацией сеанса (которые они затем внедряют в веб-просмотры).
В целом, будучи сторонним разработчиком, вы не сможете воспроизвести это поведение. Если, конечно, данный сервис не имеет такого механизма для собственных нужд, и вы делаете реверс-инжиниринг.