wake-ios/wake/Models/AuthState.swift
2025-08-22 18:58:08 +08:00

50 lines
1.2 KiB
Swift

import SwiftUI
import Combine
///
public class AuthState: ObservableObject {
@Published public var isAuthenticated: Bool = false {
didSet {
print("🔔 认证状态变更: \(isAuthenticated ? "已登录" : "已登出")")
}
}
@Published public var isLoading = false
@Published public var errorMessage: String?
@Published public var user: User?
//
public static let shared = AuthState()
private init() {}
///
public func login(user: User? = nil) {
if let user = user {
self.user = user
}
isAuthenticated = true
errorMessage = nil
}
///
public func logout() {
print("👋 用户登出")
user = nil
isAuthenticated = false
//
TokenManager.shared.clearTokens()
UserDefaults.standard.removeObject(forKey: "lastLoginUser")
}
///
public func setLoading(_ loading: Bool) {
isLoading = loading
}
///
public func setError(_ message: String) {
errorMessage = message
}
}