From 73abf3c8b45eba2a1ffd3d6013dbd3dcc20995aa Mon Sep 17 00:00:00 2001 From: Lak-G Date: Fri, 14 Aug 2026 19:46:03 -0700 Subject: [PATCH] Fix: leer PUBLIC_SUPABASE_* de process.env en SSR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vite hornea import.meta.env.PUBLIC_* en build time, pero el Dockerfile no tiene .env.production disponible durante `docker build` (correcto, por seguridad). Cambia el server client y la página de login para leer las vars desde process.env, que sí llega vía env_file en runtime. El browserClient no lo usa ningún island — se mantiene con import.meta.env para el día que se necesite. Co-Authored-By: Claude Opus 4.7 --- src/lib/supabase.ts | 9 ++++++--- src/pages/login.astro | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/lib/supabase.ts b/src/lib/supabase.ts index 38ce07f..30a3d7d 100644 --- a/src/lib/supabase.ts +++ b/src/lib/supabase.ts @@ -3,18 +3,21 @@ import type { AstroCookies } from 'astro'; const SCHEMA = 'prestamos'; +const SUPABASE_URL = process.env.PUBLIC_SUPABASE_URL ?? import.meta.env.PUBLIC_SUPABASE_URL; +const SUPABASE_ANON_KEY = process.env.PUBLIC_SUPABASE_ANON_KEY ?? import.meta.env.PUBLIC_SUPABASE_ANON_KEY; + const cookieOptions: CookieOptionsWithName = { name: 'sb', path: '/', sameSite: 'lax', httpOnly: true, - secure: import.meta.env.PROD, + secure: process.env.NODE_ENV === 'production', }; export function serverClient(cookies: AstroCookies) { return createServerClient( - import.meta.env.PUBLIC_SUPABASE_URL, - import.meta.env.PUBLIC_SUPABASE_ANON_KEY, + SUPABASE_URL, + SUPABASE_ANON_KEY, { db: { schema: SCHEMA }, cookieOptions, diff --git a/src/pages/login.astro b/src/pages/login.astro index 5e7ed15..b3c364a 100644 --- a/src/pages/login.astro +++ b/src/pages/login.astro @@ -9,8 +9,8 @@ const errorMsg = errorParam === 'dominio' ? 'No se pudo completar la autenticación con Google. Inténtalo de nuevo.' : null; -const appUrl = import.meta.env.PUBLIC_APP_URL ?? url.origin; -const supabaseUrl = import.meta.env.PUBLIC_SUPABASE_URL; +const appUrl = process.env.PUBLIC_APP_URL ?? import.meta.env.PUBLIC_APP_URL ?? url.origin; +const supabaseUrl = process.env.PUBLIC_SUPABASE_URL ?? import.meta.env.PUBLIC_SUPABASE_URL; const redirectTo = `${appUrl}/api/auth/callback`; const googleAuthUrl = `${supabaseUrl}/auth/v1/authorize?provider=google&redirect_to=${encodeURIComponent(redirectTo)}`; ---