Я планирую переключить приложение из старого потока OAuth с помощью SFSafariViewController
в новый поток с помощью iOS 11 SFAuthenticationSession
. Вход в систему не является проблемой, переход на новый API потребовал мне нескольких минут для реализации. Однако изгнание меня озадачило.
Как?
Я не могу найти упоминания о желании предложить возможность выхода из любой точки документа. Использование старого SFSafariViewController
для аннулирования файлов cookie? Нет, они больше не разделяются с SFAuthenticationSession
. Как только я перезапущу сеанс аутентификации, пользователь автоматически регистрируется и нет выхода. Итак, как включить выход из системы? Или я просто пропускаю что-то совершенно очевидное?
Обновление: я нашел "способ, который работает" в техническом смысле, но это бред для пользователя: Откройте новую страницу SFAuthenticationSession на странице выхода, которая очищает файл cookie. Но это означает, что при выходе из режима предупреждения снова спрашивает пользователя, хочет ли он войти в систему через службу. Если выбрано "Да" ("вход в систему"), открывается страница выхода для очистки cookie, пользователь должен вручную отклонить представление, которое может быть уловлено обработчиком завершения, и мы знаем, что мы снова можем открыть окно входа в систему. войдите в систему, чтобы выйти из системы? Мне действительно не нравится это решение.
Есть идеи? Я все еще игнорирую совершенно очевидное решение?
Обновление 2: поскольку никто до сих пор не знает об этой проблеме, это, вероятно, нелегко. Я подал предложение с Apple через свой инструмент отчета, чтобы либо выяснить, как справиться с этим, либо создать его в API, если он недоступен. Будет ли сообщение, если я получу ответ.
Обновление 3: рассмотрев проблему немного, мы обнаружили другое возможное (хотя и непривлекательное) решение, если вы можете влиять на страницу входа в систему поставщика OAuth: сделайте куки очень короткими. Затем можно открыть страницу входа в систему без автоматического входа в систему. Однако это убивает всю цель совместного использования сеансов входа в систему между приложениями.. и вы должны иметь возможность влиять на страницу входа.
Обновление 4: Поскольку iOS 12 SFAuthenticationSession
устарела и заменена на ASWebAuthenticationSession
. Однако ASWebAuthenticationSession
ничего не меняет в отношении выхода из системы. Это все еще невозможно. Та же проблема, что и раньше.