Spaces:
Running
Running
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); | |
} | |
} |