Новые правки

This commit is contained in:
Web-serfer 2026-05-07 18:50:53 +05:00
parent b298e69f7b
commit 51efcbd00a
3 changed files with 6 additions and 18 deletions

View file

@ -584,10 +584,8 @@ import { NAV_LINKS, COMPANY } from '@constants';
localStorage.removeItem('user'); localStorage.removeItem('user');
localStorage.removeItem('pocketbase_auth'); localStorage.removeItem('pocketbase_auth');
// Через 3 сек возвращаем кнопку входа // Полностью перезагружаем страницу — SSR проверит куки и обновит состояние
setTimeout(() => { window.location.reload();
restoreLoginButton();
}, 3000);
}; };
}; };

View file

@ -112,10 +112,8 @@ const firstLetter = userName ? userName.charAt(0).toUpperCase() : userEmail?.cha
localStorage.removeItem('user'); localStorage.removeItem('user');
localStorage.removeItem('pocketbase_auth'); localStorage.removeItem('pocketbase_auth');
// Перенаправляем на текущую страницу с параметром loggedout // Полностью перезагружаем страницу — SSR проверит куки и обновит состояние
const currentUrl = window.location.pathname + window.location.search + window.location.hash; window.location.reload();
const separator = currentUrl.includes('?') ? '&' : '?';
window.location.href = currentUrl + separator + 'loggedout=true';
}); });
}); });
</script> </script>

View file

@ -23,17 +23,13 @@ if (!post) {
return Astro.redirect('/blog'); return Astro.redirect('/blog');
} }
// SSR проверка авторизации - используем реальную проверку через API // SSR проверка авторизации
let isAuthorized = false; let isAuthorized = false;
const pbAuthCookie = Astro.cookies.get('pb_auth')?.value; const pbAuthCookie = Astro.cookies.get('pb_auth')?.value;
console.log('[SSR] Cookie exists:', !!pbAuthCookie);
if (pbAuthCookie && PB_POCKETBASE_URL && PB_POCKETBASE_URL.startsWith('http')) { if (pbAuthCookie && PB_POCKETBASE_URL && PB_POCKETBASE_URL.startsWith('http')) {
try { try {
const token = pbAuthCookie.trim(); const token = pbAuthCookie.trim();
console.log('[SSR] Token preview:', token.substring(0, 20) + '...');
const response = await fetch(`${PB_POCKETBASE_URL}/api/collections/users/auth-refresh`, { const response = await fetch(`${PB_POCKETBASE_URL}/api/collections/users/auth-refresh`, {
method: 'POST', method: 'POST',
@ -43,18 +39,14 @@ if (pbAuthCookie && PB_POCKETBASE_URL && PB_POCKETBASE_URL.startsWith('http')) {
}, },
}); });
console.log('[SSR] PB response:', response.status);
if (response.ok) { if (response.ok) {
const data = await response.json(); const data = await response.json();
console.log('[SSR] Auth valid, user:', data.record?.email);
isAuthorized = true; isAuthorized = true;
} else { } else {
console.log('[SSR] Auth invalid, deleting cookie');
Astro.cookies.delete('pb_auth', { path: '/' }); Astro.cookies.delete('pb_auth', { path: '/' });
} }
} catch (e) { } catch (e) {
console.error('[SSR] Error:', e.message); console.error('[SSR] Auth check error:', e.message);
} }
} }