mirror of
https://github.com/arthur-pbty/streaming-site.git
synced 2026-06-03 15:07:38 +02:00
70 lines
2.2 KiB
JavaScript
70 lines
2.2 KiB
JavaScript
const checkTokenValidity = () => {
|
|
const token = localStorage.getItem('token');
|
|
if (!token) return false;
|
|
|
|
return fetch('/users/me', {
|
|
headers: {
|
|
'Authorization': token
|
|
}
|
|
})
|
|
.then(response => {
|
|
if (!response.ok) {
|
|
localStorage.removeItem('token');
|
|
return false;
|
|
}
|
|
return true;
|
|
})
|
|
.catch(() => {
|
|
localStorage.removeItem('token');
|
|
return false;
|
|
});
|
|
};
|
|
|
|
document.addEventListener('DOMContentLoaded', async () => {
|
|
const token = localStorage.getItem('token');
|
|
const loginLink = document.getElementById('login-link');
|
|
const registerLink = document.getElementById('register-link');
|
|
const profileLink = document.getElementById('profile-link');
|
|
const adminLink = document.getElementById('admin-link');
|
|
const logoutButton = document.getElementById('logout-button');
|
|
|
|
if (token) {
|
|
const isValid = await checkTokenValidity();
|
|
if (!isValid) {
|
|
window.location.href = 'login.html';
|
|
return;
|
|
}
|
|
|
|
loginLink.style.display = 'none';
|
|
registerLink.style.display = 'none';
|
|
profileLink.style.display = 'block';
|
|
logoutButton.style.display = 'block';
|
|
|
|
fetch('/users/me', {
|
|
headers: {
|
|
'Authorization': token
|
|
}
|
|
})
|
|
.then(response => response.json())
|
|
.then(user => {
|
|
const welcomeMessage = document.getElementById('welcome-message');
|
|
if (welcomeMessage) {
|
|
welcomeMessage.textContent = `Bonjour ${user.email}`;
|
|
}
|
|
if (user.status === 'admin') {
|
|
adminLink.style.display = 'block';
|
|
}
|
|
});
|
|
|
|
logoutButton.addEventListener('click', () => {
|
|
localStorage.removeItem('token');
|
|
window.location.href = 'index.html';
|
|
});
|
|
} else {
|
|
loginLink.style.display = 'block';
|
|
registerLink.style.display = 'block';
|
|
profileLink.style.display = 'none';
|
|
adminLink.style.display = 'none';
|
|
logoutButton.style.display = 'none';
|
|
}
|
|
}); |