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