add user_id
This commit is contained in:
		
							parent
							
								
									e0ad636d77
								
							
						
					
					
						commit
						5d74af5597
					
				@ -104,7 +104,8 @@ class AuthService {
 | 
			
		||||
                    // Сохраняем токены в Keychain
 | 
			
		||||
                    KeychainService.shared.save(loginResponse.access_token, forKey: "access_token", service: username)
 | 
			
		||||
                    KeychainService.shared.save(loginResponse.refresh_token, forKey: "refresh_token", service: username)
 | 
			
		||||
                    KeychainService.shared.save(loginResponse.user_id, forKey: "user_id", service: username)
 | 
			
		||||
                    print("loginResponse.user_id \(loginResponse.user_id)")
 | 
			
		||||
                    KeychainService.shared.save(loginResponse.user_id, forKey: "userId", service: username)
 | 
			
		||||
                    UserDefaults.standard.set(username, forKey: "currentUser")
 | 
			
		||||
                    
 | 
			
		||||
                    completion(true, nil)
 | 
			
		||||
@ -247,6 +248,7 @@ class AuthService {
 | 
			
		||||
        // Удаляем токены текущего пользователя
 | 
			
		||||
        KeychainService.shared.delete(forKey: "access_token", service: currentUser)
 | 
			
		||||
        KeychainService.shared.delete(forKey: "refresh_token", service: currentUser)
 | 
			
		||||
        KeychainService.shared.delete(forKey: "userId", service: currentUser)
 | 
			
		||||
        
 | 
			
		||||
        // Сбрасываем текущего пользователя
 | 
			
		||||
        UserDefaults.standard.removeObject(forKey: "currentUser")
 | 
			
		||||
 | 
			
		||||
@ -10,6 +10,7 @@ import Combine
 | 
			
		||||
 | 
			
		||||
class LoginViewModel: ObservableObject {
 | 
			
		||||
    @Published var username: String = ""
 | 
			
		||||
    @Published var userId: String = ""
 | 
			
		||||
    @Published var password: String = ""
 | 
			
		||||
    @Published var isLoading: Bool = true    // сразу true, чтобы показать спиннер при автологине
 | 
			
		||||
    @Published var showError: Bool = false
 | 
			
		||||
@ -18,12 +19,14 @@ class LoginViewModel: ObservableObject {
 | 
			
		||||
 | 
			
		||||
    private let authService = AuthService()
 | 
			
		||||
 | 
			
		||||
    private enum DefaultsKeys {
 | 
			
		||||
        static let currentUser = "currentUser"
 | 
			
		||||
        static let userId = "userId"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    init() {
 | 
			
		||||
        // Если username сохранён, подставим его сразу
 | 
			
		||||
        if let savedUsername = UserDefaults.standard.string(forKey: "currentUser") {
 | 
			
		||||
            username = savedUsername
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        loadStoredUser()
 | 
			
		||||
 | 
			
		||||
        // Запускаем автологин
 | 
			
		||||
        autoLogin()
 | 
			
		||||
    }
 | 
			
		||||
@ -33,6 +36,7 @@ class LoginViewModel: ObservableObject {
 | 
			
		||||
            DispatchQueue.main.async {
 | 
			
		||||
//                self?.isLoading = false
 | 
			
		||||
                if success {
 | 
			
		||||
                    self?.loadStoredUser()
 | 
			
		||||
                    self?.isLoggedIn = true
 | 
			
		||||
                } else {
 | 
			
		||||
                    self?.isLoggedIn = false
 | 
			
		||||
@ -53,6 +57,7 @@ class LoginViewModel: ObservableObject {
 | 
			
		||||
            DispatchQueue.main.async {
 | 
			
		||||
                self?.isLoading = false
 | 
			
		||||
                if success {
 | 
			
		||||
                    self?.loadStoredUser()
 | 
			
		||||
                    self?.isLoggedIn = true
 | 
			
		||||
                } else {
 | 
			
		||||
                    self?.errorMessage = error ?? NSLocalizedString("Неизвестная ошибка", comment: "")
 | 
			
		||||
@ -67,6 +72,7 @@ class LoginViewModel: ObservableObject {
 | 
			
		||||
            DispatchQueue.main.async {
 | 
			
		||||
                if success {
 | 
			
		||||
                    self?.isLoggedIn = true // 👈 переключаем на главный экран после автологина
 | 
			
		||||
                    self?.loadStoredUser()
 | 
			
		||||
                }
 | 
			
		||||
                completion(success, message)
 | 
			
		||||
            }
 | 
			
		||||
@ -77,12 +83,13 @@ class LoginViewModel: ObservableObject {
 | 
			
		||||
        authService.logoutCurrentUser { [weak self] success, error in
 | 
			
		||||
            DispatchQueue.main.async {
 | 
			
		||||
                if success {
 | 
			
		||||
                    self?.username = UserDefaults.standard.string(forKey: "currentUser") ?? ""
 | 
			
		||||
                    self?.loadStoredUser()
 | 
			
		||||
                    self?.password = ""
 | 
			
		||||
                    self?.isLoggedIn = true
 | 
			
		||||
                    self?.showError = false
 | 
			
		||||
                } else {
 | 
			
		||||
                    self?.username = ""
 | 
			
		||||
                    self?.userId = ""
 | 
			
		||||
                    self?.password = ""
 | 
			
		||||
                    self?.isLoggedIn = false
 | 
			
		||||
                    self?.errorMessage = error ?? NSLocalizedString("Ошибка при деавторизации.", comment: "")
 | 
			
		||||
@ -100,4 +107,12 @@ class LoginViewModel: ObservableObject {
 | 
			
		||||
//        showError = false
 | 
			
		||||
//        errorMessage = ""
 | 
			
		||||
//    }
 | 
			
		||||
 | 
			
		||||
    private func loadStoredUser() {
 | 
			
		||||
        let defaults = UserDefaults.standard
 | 
			
		||||
        username = defaults.string(forKey: DefaultsKeys.currentUser) ?? ""
 | 
			
		||||
        userId = KeychainService.shared.get(forKey: DefaultsKeys.userId, service: username) ?? ""
 | 
			
		||||
        
 | 
			
		||||
        print("username: \(username) | userId: \(userId)")
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user