VKCOM / vk-ios-sdk

iOS library for working with VK API, authorization through VK app, using VK functions
MIT License
296 stars 167 forks source link

Не чистится кэш, после удаления приложения(SFSafariViewController). #388

Closed Beniamiiin closed 8 years ago

Beniamiiin commented 8 years ago

Добрый день.

iPhone 6s, iOS 9.3, устанавливаю свое приложение, авторизуюсь через вк(SFSafariViewController), удаляю приложение, заново ставлю, пробую еще раз авторизоваться, но вместо странички для ввода логина и пароля, открывается страница запроса разрешения для использования пермишенов для последнего залогиненого юзера. Все тоже самое делаю на устройстве с iOS 8, где используется UIWebView и такой проблемы не наблюдаю. Т.о. складывается ощущение, что SFSafariViewController кеширует данные, но как бы их почистить при удалении приложения?

RomanTruba commented 8 years ago

Никак. SFSafariViewController использует те же куки, что и Safari, и в них влезать нельзя.

Beniamiiin commented 8 years ago

Хм, получается, если юзер авторизовался и потом взял удалил приложение и снова поставил, то теперь он никак не сможет вести новые данные, всегда будут использоваться сохраненные? И эту проблему надо решать, как-то локально?

RomanTruba commented 8 years ago

Он может нажать кнопку выйти в верхнем углу. Если кнопка выйти не появляется, нужно обновить sdk, так как использовался ошибочный параметр display.

В целом, всё так, но в этом есть и плюс: если пользователь был уже авторизован в сафари в ВК, то ему не придётся вводить данные снова

Beniamiiin commented 8 years ago

У меня сейчас стоит версия 1.3.12, в этой версии должна быть кнопка "Выйти"?

RomanTruba commented 8 years ago

Нет, обновитесь

Beniamiiin commented 8 years ago

Обновился. Я еще тут немного подебажил и возник еще вопрос. Метод +[VKSdk wakeUpSession:(NSArray *)permissions completeBlock:(void (^)(VKAuthorizationState, NSError *error))wakeUpBlock] возвращает state = VKAuthorizationAuthorized, даже после переустановки приложения, это нормально?

RomanTruba commented 8 years ago

Вполне возможно, т.к. токен сохраняется в keychain, и может быть прочитан вашим приложением после удаления и установки

Beniamiiin commented 8 years ago

Понял, спасибо.