// // SPLoginManager.swift // Thimra // // Created by 曾觉新 on 2025/4/8. // import UIKit class SPLoginManager: NSObject { static let manager = SPLoginManager() private(set) var token: SPTokenModel? ///是否正在刷新token private(set) var isRefreshingToken = false override init() { super.init() token = UserDefaults.jx_object(forKey: kSPLoginTokenDefaultsKey, class: SPTokenModel.self) as? SPTokenModel } func setLoginToken(token: SPTokenModel?) { self.token = token UserDefaults.jx_setObject(token, forKey: kSPLoginTokenDefaultsKey) } } extension SPLoginManager { ///游客登录 func requestVisitorLogin(completer: (() -> Void)?) { if isRefreshingToken { completer?() return } isRefreshingToken = true SPNetwork.requestToken { [weak self] token in guard let self = self else { return } self.isRefreshingToken = false completer?() } } }