diff --git a/frontend/src/components/blog/comments/CommentLock.tsx b/frontend/src/components/blog/comments/CommentLock.tsx index fe45782..01744dc 100644 --- a/frontend/src/components/blog/comments/CommentLock.tsx +++ b/frontend/src/components/blog/comments/CommentLock.tsx @@ -1,7 +1,8 @@ -import { createSignal, onMount } from "solid-js"; +import { createSignal, onMount, Show } from "solid-js"; export default function CommentLock() { const [currentPath, setCurrentPath] = createSignal("/auth/sign-in"); + const [signupPath, setSignupPath] = createSignal("/auth/sign-up"); const commentsSvg = ``; @@ -10,6 +11,7 @@ export default function CommentLock() { const hash = window.location.hash; const redirectTo = hash ? `${path}${hash}` : path; setCurrentPath(`/auth/sign-in?redirect=${encodeURIComponent(redirectTo)}`); + setSignupPath(`/auth/sign-up?redirect=${encodeURIComponent(redirectTo)}`); }); return ( @@ -51,13 +53,9 @@ export default function CommentLock() {

Нет аккаунта?{" "} - - Зарегистрироваться - + Зарегистрироваться}> + Зарегистрироваться +

diff --git a/frontend/src/pages/blog/[slug].astro b/frontend/src/pages/blog/[slug].astro index 7d67a81..5693f60 100644 --- a/frontend/src/pages/blog/[slug].astro +++ b/frontend/src/pages/blog/[slug].astro @@ -26,24 +26,39 @@ if (!post) { // SSR проверка авторизации let isAuthorized = false; const pbAuthCookie = Astro.cookies.get('pb_auth')?.value; -if (pbAuthCookie) { + +if (pbAuthCookie && PB_POCKETBASE_URL && PB_POCKETBASE_URL.startsWith('http')) { try { const token = pbAuthCookie.trim(); + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), 5000); + + console.log('[SSR] Checking auth with PB...'); + const response = await fetch(`${PB_POCKETBASE_URL}/api/collections/users/auth-refresh`, { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json', }, + signal: controller.signal, }); + + clearTimeout(timeoutId); + console.log('[SSR] Auth response:', response.status); + if (response.ok) { isAuthorized = true; + console.log('[SSR] User authorized'); } else { Astro.cookies.delete('pb_auth', { path: '/' }); + console.log('[SSR] Auth failed, cookie deleted'); } } catch (e) { console.error('[SSR Auth] Error:', e); } +} else { + console.log('[SSR] No cookie or no PB_URL'); } const { likes = 0, dislikes = 0 } = await getPostVotesStats(post.id).catch(() => ({ likes: 0, dislikes: 0 }));