MoviaBox/Thimra/Libs/Login/SPLoginManager.swift
2025-04-25 15:42:52 +08:00

70 lines
1.5 KiB
Swift

//
// 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?()
}
}
}