Проверка необходимости авторизации
tarasevchenko opened this issue · 8 comments
Добавить возможность проверки статуса авторизации (уже авторизован/необходима авторизация)
"VK.sessions?.default.state.rawValue" возвращает 1, если пользователь авторизован и 0, если требуется авторизация
@xsimplex VK.sessions?.default.state.rawValue
возвратит 0, если пользователь был ранее авторизован, токен сохранен в кейчейне, но приложение перезапущено. Без вызова logIn
сейчас перед проверкой не обойтись.
И еще. Я настоятельно не рекомендую использовать rawValue, так как внутренне представление в любой момент может измениться. Используйте сравнение кейсов самого енама.
Благодарю, обязательно учту!
На самом деле выше я немного соврал и все же предусмотрел данный кейс. При восстановлении сессии сразу же происходит восстановление токена из кейчейна и VK.sessions?.default.state
должен возвращать. .authorized
. Дописал тесты на эти кейсы и по крайней мере в них происходит именно так.
@tarasevchenko, @Amekill можете подробнее рассказать как воспроизвести кейс, когда после восстановления сеcсии VK.sessions?.default.state == .initiated
? И еще, пожалуйста посмотрите какие id имеет сессия до перезапуска и после. Одинаковые ли они.
@west0r Конкретной мой случай со сменой пароля:
После прихода нового токена я делаю logout(), затем сразу же авторизацию по новому токену со сроком истечение = 0, после перезапуска приложения статус авторизации - инициация. До перезапуска все работает нормально
@tarasevchenko были проблемы с сохранением сессий, поэтому сессия не восстанавливалась после перезапуска и статус был .initiated
.
@Amekill поправил поведение при необходимости реавторизоваться. Теперь если токен больше не актуален, то приложение попросит авторизоваться снова.