include argus workflow

This commit is contained in:
joyzhuo
2026-03-29 06:29:18 -04:00
parent 275a53ab40
commit 56673078f5
23 changed files with 3098 additions and 307 deletions

View File

@@ -22,6 +22,7 @@ final class AuthManager {
do {
let response = try await APIClient.shared.login(email: email, password: password)
TokenStore.shared.token = response.accessToken
TokenStore.shared.refreshToken = response.refreshToken
currentUser = response.user
isLoggedIn = true
} catch {
@@ -40,6 +41,7 @@ final class AuthManager {
displayName: displayName
)
TokenStore.shared.token = response.accessToken
TokenStore.shared.refreshToken = response.refreshToken
currentUser = response.user
isLoggedIn = true
} catch {
@@ -58,6 +60,7 @@ final class AuthManager {
fullName: fullName
)
TokenStore.shared.token = response.accessToken
TokenStore.shared.refreshToken = response.refreshToken
currentUser = response.user
isLoggedIn = true
} catch {
@@ -67,8 +70,20 @@ final class AuthManager {
}
func logout() {
TokenStore.shared.token = nil
SessionManager.shared.stopMonitoring()
TokenStore.shared.clear()
currentUser = nil
isLoggedIn = false
errorMessage = nil
}
/// Called by APIClient when the server returns 401 and the refresh token is also dead.
func handleSessionExpired() {
guard isLoggedIn else { return }
SessionManager.shared.stopMonitoring()
TokenStore.shared.clear()
currentUser = nil
isLoggedIn = false
errorMessage = "Your session expired — please log in again."
}
}