// // SPLoginManager.swift // Thimra // // Created by 曾觉新 on 2025/4/8. // import UIKit class SPLoginManager: NSObject { enum LoginType: Int { case apple case faceBook } 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) } ///第三方登录 func thirdLogin(type: LoginType, presentingViewController: UIViewController) { switch type { case .apple: appleSignLogin { model in } default: break } } } 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?() } } }