Я разрабатываю приложение для нашей компании; из-за устаревших причин, когда пользователь входит в систему, мы используем стороннюю версию JSESSIONID cook ie.
Проблема
Я вижу, что повар ie при отправке клиенту не сохраняется и поэтому не отправляется при последующих запросах к серверу. Таким образом, сервер не считает, что пользователь вошел в систему.
Обычно я бы отнес это к блокировке сторонних файлов cookie в WebKit / View, но я отключил это в настройках Safari.
Как к вашему сведению, у нас есть проект Ionic / Cordova, основанный на том же коде, и он отлично работает в iOS.
- Если я использую Надстройка на MacOS (Native Outlook и Outlook Web) работает нормально.
- Прекрасно работает и в Chrome / Firefox.
- Работает в Android в Outlook для Android app
Наш сервер устанавливает все правильно Заголовки CORS.
Поскольку надстройка является просто веб-приложением, я могу запустить ее прямо в Safari на iOS и войти в нее; это также работает.
Мне известно, что Apple регрессировала в WebKit версии 12 (относится к CORS), но они исправили ее в последней версии iOS 13 / MacOS. Тем не менее, Outlook для iOS (WebView) не сохраняет куки. Я вижу, что, глядя на запросы, поступающие на сервер, им не хватает идентификатора SessionID, который был отправлен клиенту.
Я также вижу это по запросам при запуске через прокси (Чарльз), что Заголовок Cook ie не установлен.
Также практически невозможно отладить WebView в Outlook для iOS (веб-представление не отображается в меню Safari Developer на моем Ma c). Я легко могу отлаживать другие WebView, такие как мобильный проект, упомянутый выше.
Вопрос
Настроен ли Webview для явного предотвращения сторонних файлов cookie? если да, можно ли его как-то отключить? Я отключил стороннее отслеживание в Safari, но, похоже, это не помогает.
Я неохотно использовал Dialog JS API, поскольку на моем Mac работает поток входа в систему; и это значительно изменит наш UX для входа в систему. Также я не видел ни одного примера использования этого API для мобильного проекта. Можно ли его использовать с мобильным проектом, и если да, то как он будет выглядеть?
Все примеры относятся только к рабочему столу.