fix: access_token field, username vs name, auth response
This commit is contained in:
@@ -50,10 +50,10 @@ class AuthManager: ObservableObject {
|
|||||||
|
|
||||||
func login(token: String, user: UserInfo) {
|
func login(token: String, user: UserInfo) {
|
||||||
self.token = token
|
self.token = token
|
||||||
self.userName = user.name ?? user.email
|
self.userName = user.displayName
|
||||||
self.userId = user.id
|
self.userId = user.id
|
||||||
UserDefaults.standard.set(token, forKey: "pulseToken")
|
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")
|
UserDefaults.standard.set(user.id, forKey: "userId")
|
||||||
isLoggedIn = true
|
isLoggedIn = true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,18 +12,30 @@ struct RegisterRequest: Codable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct AuthResponse: Codable {
|
struct AuthResponse: Codable {
|
||||||
let token: String
|
let token: String?
|
||||||
|
let accessToken: String?
|
||||||
let user: UserInfo
|
let user: UserInfo
|
||||||
|
|
||||||
|
var authToken: String { token ?? accessToken ?? "" }
|
||||||
|
|
||||||
|
enum CodingKeys: String, CodingKey {
|
||||||
|
case token
|
||||||
|
case accessToken = "access_token"
|
||||||
|
case user
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct UserInfo: Codable {
|
struct UserInfo: Codable {
|
||||||
let id: Int
|
let id: Int
|
||||||
let email: String
|
let email: String
|
||||||
let name: String?
|
let name: String?
|
||||||
|
let username: String?
|
||||||
let createdAt: String?
|
let createdAt: String?
|
||||||
|
|
||||||
|
var displayName: String { username ?? name ?? email }
|
||||||
|
|
||||||
enum CodingKeys: String, CodingKey {
|
enum CodingKeys: String, CodingKey {
|
||||||
case id, email, name
|
case id, email, name, username
|
||||||
case createdAt = "created_at"
|
case createdAt = "created_at"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ struct LoginView: View {
|
|||||||
password: password
|
password: password
|
||||||
)
|
)
|
||||||
await MainActor.run {
|
await MainActor.run {
|
||||||
authManager.login(token: response.token, user: response.user)
|
authManager.login(token: response.authToken, user: response.user)
|
||||||
}
|
}
|
||||||
} catch let error as APIError {
|
} catch let error as APIError {
|
||||||
await MainActor.run { errorMessage = error.errorDescription ?? "Ошибка"; isLoading = false }
|
await MainActor.run { errorMessage = error.errorDescription ?? "Ошибка"; isLoading = false }
|
||||||
@@ -134,7 +134,7 @@ struct LoginView: View {
|
|||||||
name: name
|
name: name
|
||||||
)
|
)
|
||||||
await MainActor.run {
|
await MainActor.run {
|
||||||
authManager.login(token: response.token, user: response.user)
|
authManager.login(token: response.authToken, user: response.user)
|
||||||
}
|
}
|
||||||
} catch let error as APIError {
|
} catch let error as APIError {
|
||||||
await MainActor.run { errorMessage = error.errorDescription ?? "Ошибка"; isLoading = false }
|
await MainActor.run { errorMessage = error.errorDescription ?? "Ошибка"; isLoading = false }
|
||||||
|
|||||||
Reference in New Issue
Block a user