import { redirect } from '@sveltejs/kit'; import { env } from '$env/dynamic/private'; import type { RequestHandler } from './$types'; import { clearAuthTokens } from '$lib/server/api'; import { clearWorkspaceReturnPath, getWorkspaceLoginUrl } from '$lib/server/workspace-auth'; /** * Logout del CRM. Limpia la sesión LOCAL (cookies) y devuelve al Workspace. * NO habla directo a Keycloak: el cierre de sesión completo (Hub/KC) se hace * desde el Workspace. Patrón SIWEB. */ export const POST: RequestHandler = async ({ cookies }) => { // Eliminar todas las cookies de autenticación (incluye sesión local + token KC) clearAuthTokens(cookies); cookies.delete('id_token', { path: '/' }); cookies.delete('sso_tenant_id', { path: '/' }); cookies.delete('sso_tenant_pub', { path: '/' }); clearWorkspaceReturnPath(cookies); // Modo local: no hay Workspace — ir al login local. if ((env.DEV_LOCAL_AUTH ?? '').toLowerCase() === 'true') { throw redirect(303, '/login'); } // Volver al Workspace (App Launcher). Para cerrar la sesión del Hub por // completo, el usuario cierra sesión desde el Workspace. throw redirect(303, getWorkspaceLoginUrl()); };