From 7d74930295249f8fc104217b0018a869cf2345ac Mon Sep 17 00:00:00 2001 From: stoeffn <13511737+stoeffn@users.noreply.github.com> Date: Thu, 22 Mar 2018 10:18:22 +0100 Subject: [PATCH] :bug: Remove all cookies when signing out thus fixing account switching MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apparently, the Stud.IP API also stores session cookies that have a higher precedence than my OAuth header… --- StudApp/StudKit/Api/Api.swift | 2 +- StudApp/StudKit/Models/Users/User.swift | 4 ++-- StudApp/StudKit/StudIp/StudIpService.swift | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/StudApp/StudKit/Api/Api.swift b/StudApp/StudKit/Api/Api.swift index 614ae323..27f63e38 100644 --- a/StudApp/StudKit/Api/Api.swift +++ b/StudApp/StudKit/Api/Api.swift @@ -31,7 +31,7 @@ class Api { // MARK: - Life Cycle - private let session: URLSession + let session: URLSession /// Base `URL` of all requests this instance issues. Any route paths will be appended to it. var baseUrl: URL? diff --git a/StudApp/StudKit/Models/Users/User.swift b/StudApp/StudKit/Models/Users/User.swift index 1b0ffefd..6798abcb 100644 --- a/StudApp/StudKit/Models/Users/User.swift +++ b/StudApp/StudKit/Models/Users/User.swift @@ -81,13 +81,13 @@ public final class User: NSManagedObject, CDCreatable, CDIdentifiable, CDSortabl // MARK: - Core Data Operations extension User { - private static var currentUserFromDefaults: User? = { + private static var currentUserFromDefaults: User? { let storageService = ServiceContainer.default[StorageService.self] let coreDataService = ServiceContainer.default[CoreDataService.self] let currentUserId = storageService.defaults.string(forKey: UserDefaults.userIdKey) guard let user = try? fetch(byId: currentUserId, in: coreDataService.viewContext) else { return nil } return user - }() + } public internal(set) static var current: User? = currentUserFromDefaults { didSet { diff --git a/StudApp/StudKit/StudIp/StudIpService.swift b/StudApp/StudKit/StudIp/StudIpService.swift index 7cfe9e35..906efc54 100644 --- a/StudApp/StudKit/StudIp/StudIpService.swift +++ b/StudApp/StudKit/StudIp/StudIpService.swift @@ -95,6 +95,7 @@ public class StudIpService { func signOut() { try? (api.authorizing as? PersistableApiAuthorizing)?.removeCredentials() + api.session.configuration.httpCookieStorage?.removeCookies(since: .distantPast) api.baseUrl = nil api.authorizing = nil