diff --git a/DevLog/App/Assembler/DataAssembler.swift b/DevLog/App/Assembler/DataAssembler.swift index fc63bd62..ebe70a5b 100644 --- a/DevLog/App/Assembler/DataAssembler.swift +++ b/DevLog/App/Assembler/DataAssembler.swift @@ -33,7 +33,10 @@ final class DataAssembler: Assembler { } container.register(AuthSessionRepository.self) { - AuthSessionRepositoryImpl(authService: container.resolve(AuthService.self)) + AuthSessionRepositoryImpl( + authService: container.resolve(AuthService.self), + userDefaultsStore: container.resolve(UserDefaultsStore.self) + ) } container.register(AuthDataRepository.self) { diff --git a/DevLog/Data/Repository/AuthSessionRepositoryImpl.swift b/DevLog/Data/Repository/AuthSessionRepositoryImpl.swift index 64357050..ca15eec6 100644 --- a/DevLog/Data/Repository/AuthSessionRepositoryImpl.swift +++ b/DevLog/Data/Repository/AuthSessionRepositoryImpl.swift @@ -9,9 +9,11 @@ import Combine final class AuthSessionRepositoryImpl: AuthSessionRepository { private let authService: AuthService + private let userDefaultsStore: UserDefaultsStore - init(authService: AuthService) { + init(authService: AuthService, userDefaultsStore: UserDefaultsStore) { self.authService = authService + self.userDefaultsStore = userDefaultsStore self.signIn = authService.uid != nil } @@ -22,6 +24,9 @@ final class AuthSessionRepositoryImpl: AuthSessionRepository { } func setSession(_ signedIn: Bool) { + if !signedIn { + userDefaultsStore.removeAll() + } self.signIn = signedIn } } diff --git a/DevLog/Storage/Persistence/UserDefaultsStore.swift b/DevLog/Storage/Persistence/UserDefaultsStore.swift index 4c964719..bf3e371b 100644 --- a/DevLog/Storage/Persistence/UserDefaultsStore.swift +++ b/DevLog/Storage/Persistence/UserDefaultsStore.swift @@ -37,4 +37,9 @@ final class UserDefaultsStore { func setBool(_ value: Bool, forKey key: String) { userDefaults.set(value, forKey: key) } + + func removeAll() { + guard let bundleIdentifier = Bundle.main.bundleIdentifier else { return } + userDefaults.removePersistentDomain(forName: bundleIdentifier) + } }