Spaces:
Sleeping
Sleeping
| const client = new Appwrite.Client(); | |
| client.setEndpoint('https://cloud.appwrite.io/v1') | |
| .setProject('66c2f6c7000abed7f1f9'); | |
| const account = new Appwrite.Account(client); | |
| async function checkAuth() { | |
| try { | |
| const session = await account.getSession('current'); | |
| return session; | |
| } catch (error) { | |
| console.error("Not authenticated", error); | |
| return null; | |
| } | |
| } | |
| function redirectToLogin() { | |
| window.location.href = '/'; | |
| } | |
| async function logout() { | |
| // Show loading indicator | |
| const loadingElement = document.createElement('div'); | |
| loadingElement.textContent = 'Logging out...'; | |
| document.body.appendChild(loadingElement); | |
| try { | |
| // Set a timeout for the logout process | |
| const logoutPromise = account.deleteSession('current'); | |
| const timeoutPromise = new Promise((_, reject) => | |
| setTimeout(() => reject(new Error('Logout timed out')), 5000) // 5 second timeout | |
| ); | |
| await Promise.race([logoutPromise, timeoutPromise]); | |
| // Perform any client-side cleanup here | |
| // For example, clear any local storage items | |
| localStorage.clear(); | |
| // Redirect to login page | |
| window.location.href = '/'; | |
| } catch (error) { | |
| console.error("Logout failed:", error); | |
| alert("Logout failed. Please try again."); | |
| } finally { | |
| // Remove loading indicator | |
| document.body.removeChild(loadingElement); | |
| } | |
| } |