VKCOM / vk-ios-sdk

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

Авторизация под другим пользователем, смена. (куки не удаляются) #510

Closed NikKovIos closed 4 years ago

NikKovIos commented 7 years ago

Добрый день) У меня точно такая же проблема как описана в https://github.com/VKCOM/vk-ios-sdk/issues/7

VKSdk.forceLogout() не удаляет куки, соответсвенно зайти под другим пользователем нет возможности.

Помогло только

let cookies = HTTPCookieStorage.shared.cookies
for cookie in cookies! {
     if cookie.domain.contains("vk.com") {
          HTTPCookieStorage.shared.deleteCookie(cookie)
     } 
}
KonstantinBerkow commented 6 years ago

На самом деле самому почистить куки тоже не поможет (forceLogout тоже это делает), так как дело в куках сафари, пользовтаель должен сам нажать "Выйти". Но можно авторизоваться не используя SFSafariViewController, тогда проблемы не будет:

switch state {
case .unknown: fallthrough
case .initialized:
    VKSdk.authorize(vkPermissions, with: .disableSafariController)
case .authorized:
    VKSdk.forceLogout()
    VKSdk.authorize(vkPermissions, with: .disableSafariController)
// other cases
}

Впрочем некоторые считают WebView злом 🙂 (https://twitter.com/krausefx/status/970119355471147008)

NikKovIos commented 4 years ago

В версии 1.5.1 теперь куки удаляются в методе forceLogout.