Inhalt
Aktueller Ordner:
duesseldorfer-schuelerinventar-swift-client/Duesk/ServicesAPIService.swift
import Foundation
import SwiftUI
class SessionManager: ObservableObject {
static let shared = SessionManager()
@Published var isLoggedIn = false
private(set) var userId: String?
private(set) var session: String?
private init() {
loadFromUserDefaults()
}
func setSession(userId: String, session: String) {
self.userId = userId
self.session = session
self.isLoggedIn = true
saveToUserDefaults()
}
func clear() {
userId = nil
session = nil
isLoggedIn = false
UserDefaults.standard.removeObject(forKey: "duesk_userId")
UserDefaults.standard.removeObject(forKey: "duesk_session")
}
func getAuthHeaders() -> [String: String] {
guard let userId = userId, let session = session else {
return [:]
}
return [
"X-User-ID": userId,
"X-Session": session
]
}
private func saveToUserDefaults() {
UserDefaults.standard.set(userId, forKey: "duesk_userId")
UserDefaults.standard.set(session, forKey: "duesk_session")
}
private func loadFromUserDefaults() {
self.userId = UserDefaults.standard.string(forKey: "duesk_userId")
self.session = UserDefaults.standard.string(forKey: "duesk_session")
self.isLoggedIn = userId != nil && session != nil
}
}