fix: force rebuild and enable insecure cookies for HTTP access v1.1.0

This commit is contained in:
Carlos (Almeira) 2026-03-27 09:37:59 -05:00
parent 00aeb44baa
commit 42777abf6d
2 changed files with 26 additions and 14 deletions

View File

@ -1,3 +1,4 @@
# BUILD_ID: 2024-03-27_T14_35_RESET
FROM node:20-alpine AS base
# Install dependencies only when needed

View File

@ -8,35 +8,40 @@ const ENDPOINT = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT || 'https://appwrite.
const PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c';
const COOKIE_NAME = `a_session_${PROJECT_ID.toLowerCase()}`;
// Password de emergencia (Lo ideal es que configures ADMIN_PASSWORD en las variables de entorno de Coolify)
// Password de emergencia (Configurado en Coolify)
const ADMIN_PASSWORD = process.env.ADMIN_PASSWORD || 'AlmeiraAdmin2024*';
export async function login(prevState: any, formData: FormData) {
const emailInput = formData.get('email') as string;
const password = formData.get('password') as string;
const email = emailInput.trim().toLowerCase();
const email = emailInput ? emailInput.trim().toLowerCase() : '';
console.log('Intentando login para:', email);
// LOG DE VERSIÓN PARA CONFIRMAR DESPLIEGUE EN COOLIFY
console.log('--- ALMEIRA WEB VERSION 1.1.0 ---');
console.log('Intento de login para:', email);
// Login de Emergencia Protegido (Súper Robusto)
// 1. Bypass de Emergencia (Prioridad Máxima)
if (email === 'admin@almeira.com.co') {
console.log('Detectado correo de emergencia, verificando password...');
console.log('>>> MODO EMERGENCIA: Verificando credenciales locales...');
if (password === ADMIN_PASSWORD) {
console.log('>>> MODO EMERGENCIA: Acceso concedido.');
const cookieStore = await cookies();
cookieStore.set(COOKIE_NAME, "admin-bypass-session", {
path: "/",
httpOnly: true,
sameSite: "lax",
secure: false, // Temporalmente false para permitir login sin HTTPS válido
secure: false, // Permitir en HTTP (No Seguro)
maxAge: 60 * 60 * 24 * 7,
});
console.log('Bypass de emergencia activado para admin');
console.log('>>> MODO EMERGENCIA: Cookie guardada, redirigiendo a /dashboard');
return redirect('/dashboard');
} else {
return { error: 'Contraseña de administrador de emergencia incorrecta.' };
console.log('>>> MODO EMERGENCIA: Password incorrecto.');
return { error: 'Contraseña de emergencia incorrecta.' };
}
}
// 2. Intento de Login Normal (Appwrite)
try {
const client = new Client()
.setEndpoint(ENDPOINT)
@ -50,16 +55,20 @@ export async function login(prevState: any, formData: FormData) {
path: "/",
httpOnly: true,
sameSite: "lax",
secure: false, // Temporalmente false
secure: false, // Permitir en HTTP (No Seguro)
maxAge: 60 * 60 * 24 * 7,
});
console.log('Sesión de Appwrite creada exitosamente');
console.log('>>> LOGIN APPWRITE: Sesión creada exitosamente');
} catch (error: any) {
if (error.code === 429) {
return { error: 'Límite de intentos excedido en Appwrite. Usa el acceso de emergencia si es urgente.' };
console.error('>>> LOGIN ERROR:', error.message);
if (error.code === 401) {
return { error: 'Credenciales inválidas en Appwrite.' };
}
return { error: 'Credenciales inválidas. Verifica tus datos o usa el acceso de emergencia.' };
if (error.code === 429) {
return { error: 'Límite de intentos excedido. Usa el acceso de emergencia.' };
}
return { error: 'Error de conexión o datos inválidos.' };
}
redirect('/dashboard');
@ -78,7 +87,9 @@ export async function logout() {
.setSession(sessionCookie.value);
const account = new Account(client);
await account.deleteSession('current');
} catch(e) {}
} catch(e) {
console.error('Error al cerrar sesión en Appwrite:', e);
}
}
}