fixed some bugs
This commit is contained in:
@@ -6,15 +6,20 @@ import SwiftUI
|
||||
final class AuthManager: ObservableObject {
|
||||
@Published var token: String
|
||||
@Published var nickname: String
|
||||
@Published var userID: String
|
||||
@Published var showingRegister = false
|
||||
@Published var showingSSO = false
|
||||
@Published var showingPhoneBinding = false
|
||||
@Published var ssoPendingToken: String?
|
||||
@Published var ssoPendingUserId = ""
|
||||
|
||||
init() {
|
||||
let defaults = UserDefaults.standard
|
||||
token = defaults.string(forKey: "oral_trainer_token") ?? ""
|
||||
nickname = defaults.string(forKey: "oral_trainer_nickname") ?? ""
|
||||
let userID = defaults.string(forKey: "oral_trainer_user_id") ?? ""
|
||||
AppConfig.currentUserId = userID
|
||||
self.userID = userID
|
||||
AppConfig.authToken = token
|
||||
}
|
||||
|
||||
@@ -24,22 +29,29 @@ final class AuthManager: ObservableObject {
|
||||
token = session.token
|
||||
nickname = session.user.nickname
|
||||
AppConfig.authToken = session.token
|
||||
userID = session.user.id
|
||||
AppConfig.currentUserId = session.user.id
|
||||
let defaults = UserDefaults.standard
|
||||
defaults.set(session.token, forKey: "oral_trainer_token")
|
||||
defaults.set(session.user.nickname, forKey: "oral_trainer_nickname")
|
||||
defaults.set(session.user.id, forKey: "oral_trainer_user_id")
|
||||
}
|
||||
|
||||
func logout() {
|
||||
token = ""
|
||||
nickname = ""
|
||||
AppConfig.authToken = ""
|
||||
userID = ""
|
||||
AppConfig.currentUserId = ""
|
||||
showingRegister = false
|
||||
showingSSO = false
|
||||
showingPhoneBinding = false
|
||||
ssoPendingToken = nil
|
||||
ssoPendingUserId = ""
|
||||
let defaults = UserDefaults.standard
|
||||
defaults.removeObject(forKey: "oral_trainer_token")
|
||||
defaults.removeObject(forKey: "oral_trainer_nickname")
|
||||
defaults.removeObject(forKey: "oral_trainer_user_id")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,6 +369,7 @@ struct SSOWebView: View {
|
||||
dismiss()
|
||||
if !result.phoneBound {
|
||||
auth.ssoPendingToken = result.token
|
||||
auth.ssoPendingUserId = result.user.id
|
||||
auth.showingPhoneBinding = true
|
||||
} else {
|
||||
auth.saveSession(AuthSession(token: result.token, user: result.user))
|
||||
@@ -499,7 +512,13 @@ struct PhoneBindingView: View {
|
||||
try await AuthAPI.ssoBindPhone(token: token, phone: cleaned)
|
||||
auth.showingPhoneBinding = false
|
||||
auth.ssoPendingToken = nil
|
||||
auth.saveSession(AuthSession(token: token, user: AuthUser(id: "", username: "", nickname: "")))
|
||||
let userID = auth.ssoPendingUserId
|
||||
auth.saveSession(
|
||||
AuthSession(
|
||||
token: token,
|
||||
user: AuthUser(id: userID, username: "", nickname: "")
|
||||
)
|
||||
)
|
||||
dismiss()
|
||||
onLoginSuccess()
|
||||
} catch {
|
||||
|
||||
Reference in New Issue
Block a user