diff --git a/PulseHealth/App.swift b/PulseHealth/App.swift index 4e81843..a987a5b 100644 --- a/PulseHealth/App.swift +++ b/PulseHealth/App.swift @@ -50,10 +50,10 @@ class AuthManager: ObservableObject { func login(token: String, user: UserInfo) { self.token = token - self.userName = user.name ?? user.email + self.userName = user.displayName self.userId = user.id UserDefaults.standard.set(token, forKey: "pulseToken") - UserDefaults.standard.set(user.name ?? user.email, forKey: "userName") + UserDefaults.standard.set(user.displayName, forKey: "userName") UserDefaults.standard.set(user.id, forKey: "userId") isLoggedIn = true } diff --git a/PulseHealth/Models/AuthModels.swift b/PulseHealth/Models/AuthModels.swift index 68fa56b..7b8bf6c 100644 --- a/PulseHealth/Models/AuthModels.swift +++ b/PulseHealth/Models/AuthModels.swift @@ -12,18 +12,30 @@ struct RegisterRequest: Codable { } struct AuthResponse: Codable { - let token: String + let token: String? + let accessToken: String? let user: UserInfo + + var authToken: String { token ?? accessToken ?? "" } + + enum CodingKeys: String, CodingKey { + case token + case accessToken = "access_token" + case user + } } struct UserInfo: Codable { let id: Int let email: String let name: String? + let username: String? let createdAt: String? + var displayName: String { username ?? name ?? email } + enum CodingKeys: String, CodingKey { - case id, email, name + case id, email, name, username case createdAt = "created_at" } } diff --git a/PulseHealth/Views/LoginView.swift b/PulseHealth/Views/LoginView.swift index ace8631..2ddeb14 100644 --- a/PulseHealth/Views/LoginView.swift +++ b/PulseHealth/Views/LoginView.swift @@ -114,7 +114,7 @@ struct LoginView: View { password: password ) await MainActor.run { - authManager.login(token: response.token, user: response.user) + authManager.login(token: response.authToken, user: response.user) } } catch let error as APIError { await MainActor.run { errorMessage = error.errorDescription ?? "Ошибка"; isLoading = false } @@ -134,7 +134,7 @@ struct LoginView: View { name: name ) await MainActor.run { - authManager.login(token: response.token, user: response.user) + authManager.login(token: response.authToken, user: response.user) } } catch let error as APIError { await MainActor.run { errorMessage = error.errorDescription ?? "Ошибка"; isLoading = false }