Как аннулировать сессию в Alamofire? - PullRequest
0 голосов
/ 12 июня 2018

У меня проблема с Alamofire с SSO (единый вход).

Alamofire 4.7.2 Swift 4.1

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

Я попробовал

Alamofire.SessionManager.default.session.getAllTasks { (tasks) in
    tasks.forEach({ $0.cancel() })
}

URLSession.shared.flush {
    URLSession.shared.reset {
    }
}

URLSession.shared.invalidateAndCancel()

Alamofire.SessionManager.default.session.flush {
    Alamofire.SessionManager.default.session.reset {
        var storage: URLCredentialStorage? {
            return Alamofire.SessionManager.default.session.configuration.urlCredentialStorage
        }

        print("Credentials found: \(storage?.allCredentials.first?.value.first?.value.user ?? "nil")\n")
        if let protectionSpace: URLProtectionSpace = storage?.allCredentials.first?.key, let credential = storage?.allCredentials.first?.value.first?.value {
            storage?.remove(credential, for: protectionSpace)
            NSLog("Credentials removed: %@", credential.user ?? "nil")
            print("Credentials removed: \(credential.user ?? "")\n")
            print("Credentials found: \(storage?.allCredentials.first?.value.first?.value.user ?? "nil")\n")
        }

        DispatchQueue.main.sync {
            listener(response, error)
        }
    }
}
...