Añadir ruta /log-out (cierre de sesión) por idioma
Route Handler GET en app/[locale]/log-out: destruye la cookie de sesión y
redirige (303) a /{locale}. Enlace directo visitable (/es/log-out, /en/log-out)
sin depender de JS; reutiliza getSession().destroy().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
import { NextResponse } from 'next/server'
|
||||||
|
import { getSession } from '@/lib/session'
|
||||||
|
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}».
|
||||||
|
*/
|
||||||
|
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 })
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user