42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
|
|
document.addEventListener('DOMContentLoaded', () => {
|
||
|
|
checkAuthStatus();
|
||
|
|
initLogoutListener();
|
||
|
|
});
|
||
|
|
|
||
|
|
async function checkAuthStatus() {
|
||
|
|
try {
|
||
|
|
const res = await fetch('/auth/me');
|
||
|
|
const data = await res.json();
|
||
|
|
updateAuthUI(data.authenticated);
|
||
|
|
} catch (err) {
|
||
|
|
console.error("Auth check failed", err);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function initLogoutListener() {
|
||
|
|
const logoutLink = document.getElementById('link-logout');
|
||
|
|
if (logoutLink) {
|
||
|
|
logoutLink.addEventListener('click', async (e) => {
|
||
|
|
e.preventDefault();
|
||
|
|
try {
|
||
|
|
await fetch('/auth/logout', { method: 'POST' });
|
||
|
|
window.location.reload();
|
||
|
|
} catch (err) {
|
||
|
|
console.error("Logout failed", err);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function updateAuthUI(isLoggedIn) {
|
||
|
|
const loginLink = document.getElementById('link-login');
|
||
|
|
const logoutLink = document.getElementById('link-logout');
|
||
|
|
|
||
|
|
if (isLoggedIn) {
|
||
|
|
if (loginLink) loginLink.style.display = 'none';
|
||
|
|
if (logoutLink) logoutLink.style.display = 'inline';
|
||
|
|
} else {
|
||
|
|
if (loginLink) loginLink.style.display = 'inline';
|
||
|
|
if (logoutLink) logoutLink.style.display = 'none';
|
||
|
|
}
|
||
|
|
}
|