Files
yingmeng-ios-switf/yinmeng-ios/Modules/Auth/VM/AuthManager.swift
2024-03-05 14:04:09 +08:00

79 lines
1.7 KiB
Swift

//
// 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<UserTokenObject>.toModel(with: dic){
self.tokenInfo = model
}
return self.tokenInfo
}
}