SwiftyVK/SwiftyVK

Проверка необходимости авторизации

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 поправил поведение при необходимости реавторизоваться. Теперь если токен больше не актуален, то приложение попросит авторизоваться снова.