diff --git a/web/src/api/index.ts b/web/src/api/index.ts index df8ed10..ef3dc25 100644 --- a/web/src/api/index.ts +++ b/web/src/api/index.ts @@ -25,13 +25,22 @@ const processRefreshQueue = async (token: string | null) => { refreshQueue = []; }; +const logout = async (accountId: string) => { + const db = useDbStore.getState().db; + const requireSignIn = useAuth.getState().requireSignIn; + + if (db) { + await deleteAccount(db, accountId); + } + requireSignIn?.(); +}; + const refreshToken = async ( accountId: string, refreshToken: string, ): Promise<{ access: string; refresh: string }> => { const db = useDbStore.getState().db; const loadAccounts = useAuth.getState().loadAccounts; - const requireSignIn = useAuth.getState().requireSignIn; if (!db) { console.log("No database connection available."); @@ -52,8 +61,7 @@ const refreshToken = async ( return { access: response.access, refresh: response.refresh }; } catch (err) { console.error("Token refresh failed:", err); - await deleteAccount(db, accountId); - requireSignIn?.(); + await logout(accountId); processRefreshQueue(null); throw err; } finally { @@ -93,6 +101,7 @@ axios.interceptors.request.use( } if (!token) { + await logout(account!.accountId); throw new Error("No token available"); }