79 lines
1.7 KiB
Swift
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
|
|
}
|
|
|
|
}
|