From 61ca63a55f4244b21b0d61dc3fd87ee8eff9f232 Mon Sep 17 00:00:00 2001 From: adevopg Date: Wed, 15 Jul 2026 18:27:02 +0000 Subject: [PATCH] =?UTF-8?q?Arreglar=20cierre=20de=20sesi=C3=B3n=20solo:=20?= =?UTF-8?q?=20prefetcheaba=20/log-out?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regresión del commit anterior. /log-out es un GET que destruye la sesión, y yo lo enlacé con : el router de Next lo prefetchea al entrar en pantalla, así que la cookie se borraba sin que nadie pulsara. La página se renderizaba en el servidor con la sesión («¡Ya estás conectado!») y al recargar ya no había sesión. Reproducido: una petición de prefetch (RSC: 1, Next-Router-Prefetch: 1) a /es/log-out responde `set-cookie: nightspire_session=; Max-Age=0`. Se enlaza con plano, que es justo como lo hace SiteHeader. Queda comentado en ambos sitios para que no vuelva a colarse. Co-Authored-By: Claude Opus 4.8 (1M context) --- web-next/app/[locale]/create-account/page.tsx | 6 ++++-- web-next/app/[locale]/log-in/page.tsx | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/web-next/app/[locale]/create-account/page.tsx b/web-next/app/[locale]/create-account/page.tsx index 766be76..8fd965c 100644 --- a/web-next/app/[locale]/create-account/page.tsx +++ b/web-next/app/[locale]/create-account/page.tsx @@ -1,6 +1,5 @@ import type { Metadata } from 'next' import { getTranslations, setRequestLocale } from 'next-intl/server' -import { Link } from '@/i18n/navigation' import { getSession } from '@/lib/session' import { PageShell } from '@/components/PageShell' import { RegisterForm } from './RegisterForm' @@ -43,7 +42,10 @@ export default async function CreateAccountPage({ params }: { params: Promise<{ <>

{t('alreadyLogged')}


-

{t.rich('alreadyLoggedCreate', { logout: (c) => {c} })}

+ {/* `
` plano, NUNCA : /log-out es un GET que destruye la sesión, + y lo prefetcharía al entrar en pantalla, cerrándola sola sin + que nadie pulse. SiteHeader lo enlaza así por lo mismo. */} +

{t.rich('alreadyLoggedCreate', { logout: (c) => {c} })}

) : ( diff --git a/web-next/app/[locale]/log-in/page.tsx b/web-next/app/[locale]/log-in/page.tsx index 77dc5a4..b01fdfa 100644 --- a/web-next/app/[locale]/log-in/page.tsx +++ b/web-next/app/[locale]/log-in/page.tsx @@ -22,7 +22,10 @@ export default async function LoginPage({ params }: { params: Promise<{ locale:

{t('alreadyLogged')}


-

{t.rich('alreadyLoggedOther', { logout: (c) => {c} })}

+ {/* `` plano, NUNCA : /log-out es un GET que destruye la sesión, + y lo prefetcharía al entrar en pantalla, cerrándola sola sin + que nadie pulse. SiteHeader lo enlaza así por lo mismo. */} +

{t.rich('alreadyLoggedOther', { logout: (c) => {c} })}