mirror of
https://github.com/hyzendust/hyzendust.github.io.git
synced 2026-07-01 07:22:17 +02:00
52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
(function () {
|
|
// ── UniNotes auth guard ──
|
|
if (window.location.pathname.indexOf('/uninotes/') === 0) {
|
|
if (localStorage.getItem('f4_username') !== 'hyzen') {
|
|
sessionStorage.setItem('f4_login_next', window.location.pathname);
|
|
window.location.replace('/login/');
|
|
return;
|
|
}
|
|
}
|
|
|
|
var path = window.location.pathname;
|
|
if (path === '/login/' || path === '/signup/') return;
|
|
|
|
// ── Save current page before navigating to login/signup ──
|
|
document.querySelectorAll('a[href="/login/"], a[href="/signup/"]').forEach(function (a) {
|
|
a.addEventListener('click', function () {
|
|
sessionStorage.setItem('f4_login_next', path);
|
|
});
|
|
});
|
|
|
|
// ── Validate session on every page load ──
|
|
if (!localStorage.getItem('f4_username')) return;
|
|
|
|
// Skip check if we just logged in (5 second grace period)
|
|
var loginTime = parseInt(localStorage.getItem('f4_login_time') || '0', 10);
|
|
if (Date.now() - loginTime < 5000) return;
|
|
|
|
fetch('https://backend.freedoms4.org/auth.php', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
credentials: 'include',
|
|
body: JSON.stringify({ action: 'check_session' }),
|
|
})
|
|
.then(function (r) {
|
|
return r.json();
|
|
})
|
|
.then(function (data) {
|
|
if (!data.valid) {
|
|
// Session invalid — clear localStorage and reload to update UI
|
|
localStorage.removeItem('f4_username');
|
|
localStorage.removeItem('f4_login_time');
|
|
localStorage.removeItem('f4_session_fails');
|
|
window.location.reload();
|
|
} else {
|
|
localStorage.removeItem('f4_session_fails');
|
|
}
|
|
})
|
|
.catch(function () {
|
|
// Backend unreachable — do NOT log out, just ignore silently
|
|
});
|
|
})();
|