86 lines
1.9 KiB
Swift
86 lines
1.9 KiB
Swift
//
|
||
// SPLoginManager.swift
|
||
// MoviaBox
|
||
//
|
||
// 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 isLoginAndOpenLoginVC() -> Bool {
|
||
// if !isLogin {
|
||
// openLoginVC()
|
||
// }
|
||
// return isLogin
|
||
return false
|
||
}
|
||
|
||
func openLoginVC() {
|
||
let vc = SPLoginViewController()
|
||
let nav = SPNavigationController(rootViewController: vc)
|
||
nav.modalPresentationStyle = .fullScreen
|
||
|
||
SPAPPTool.topViewController()?.present(nav, animated: true)
|
||
}
|
||
|
||
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?()
|
||
}
|
||
|
||
}
|
||
|
||
}
|