// // AuthManager.swift // Nextcloud Cookbook iOS Client // // Created by Vincent Meilinger on 30.05.25. // import Foundation import KeychainSwift class AuthManager { static let shared = AuthManager() let keychain = KeychainSwift() var authString: String? = nil private let nextcloudUsernameKey = "nextcloud_username" private let nextcloudAuthStringKey = "nextcloud_auth_string" // Stored as base64 func saveNextcloudCredentials(username: String, appPassword: String) { keychain.set(username, forKey: nextcloudUsernameKey) let loginString = "\(username):\(appPassword)" if let loginData = loginString.data(using: .utf8) { keychain.set(loginData.base64EncodedString(), forKey: nextcloudAuthStringKey) } } func getNextcloudCredentials() -> (username: String?, authString: String?) { let username = keychain.get(nextcloudUsernameKey) let authString = keychain.get(nextcloudAuthStringKey) return (username, authString) } func loadAuthString() { authString = keychain.get(nextcloudAuthStringKey) } func deleteNextcloudCredentials() { keychain.delete(nextcloudUsernameKey) keychain.delete(nextcloudAuthStringKey) } }