// // AuthManager.swift // yinmeng-ios // // Created by yinmeng on 2024/2/24. // import Foundation private let UserTokenKey = "UserTokenKey" private let UserTicketKey = "UserTicketKey" class AuthManager: NSObject { var tokenInfo:UserTokenObject? static var userUid:Int { return LoginTokenConfig.config.getAccountInfo()?.uid ?? 0 } static var ticket:String{ return LoginTokenConfig.config.getTicket() } } class LoginTokenConfig: NSObject { public static let config = LoginTokenConfig.init() var tokenInfo: UserTokenObject? var ticket:String? func saveTokenToLocaltion(token: UserTokenObject) { self.tokenInfo = token if let dic = token.dictionary { UserDefaults.standard.setValue(dic, forKey: UserTokenKey) UserDefaults.standard.synchronize() } } func removeTokenFromLocaltion() { self.tokenInfo = nil UserDefaults.standard.removeObject(forKey: UserTokenKey) } func saveTicketToLoaction(ticket:String) { self.ticket = ticket UserDefaults.standard.setValue(ticket, forKey: UserTicketKey) UserDefaults.standard.synchronize() } func removeTicketFromLoaction() { self.ticket = "" UserDefaults.standard.removeObject(forKey: UserTicketKey) } func getTicket() -> String { if let ticket = self.ticket { return ticket } if let ticket = UserDefaults.standard.value(forKey: UserTicketKey) as? String{ self.ticket = ticket } return self.ticket ?? "" } func getAccountInfo() -> UserTokenObject? { if let accountModel = self.tokenInfo { return accountModel } if let dic = UserDefaults.standard.value(forKey: UserTokenKey), let model = Deserialized.toModel(with: dic){ self.tokenInfo = model } return self.tokenInfo } }