log-out: redirect relativo (arreglar localhost tras el proxy)

Construir la URL desde request.url daba https://localhost:3001/es detrás de Caddy
(usa la dirección interna). Ahora el Location es relativo (/es), que el navegador
resuelve contra el dominio público real.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-14 14:49:12 +00:00
parent 9e6a8f8231
commit d9c29bdc68
+7 -2
View File
@@ -5,13 +5,18 @@ import { routing } from '@/i18n/routing'
/**
* Cierra la sesión y redirige al inicio del idioma. Es una ruta visitable
* (/es/log-out, /en/log-out): destruye la cookie de sesión y manda a «/{locale}».
*
* Se usa un `Location` RELATIVO (no `request.url`): detrás del proxy inverso
* (Caddy) `request.url` trae la dirección interna (localhost:3001), lo que hacía
* que el redirect apuntara a localhost. Con una ruta relativa el navegador la
* resuelve contra el dominio público real.
*/
export async function GET(request: Request, { params }: { params: Promise<{ locale: string }> }) {
export async function GET(_request: Request, { params }: { params: Promise<{ locale: string }> }) {
const { locale } = await params
const loc = routing.locales.includes(locale as (typeof routing.locales)[number]) ? locale : routing.defaultLocale
const session = await getSession()
session.destroy()
return NextResponse.redirect(new URL(`/${loc}`, request.url), { status: 303 })
return new NextResponse(null, { status: 303, headers: { Location: `/${loc}` } })
}