fix: force rebuild and enable insecure cookies for HTTP access v1.1.0
This commit is contained in:
parent
00aeb44baa
commit
42777abf6d
@ -1,3 +1,4 @@
|
|||||||
|
# BUILD_ID: 2024-03-27_T14_35_RESET
|
||||||
FROM node:20-alpine AS base
|
FROM node:20-alpine AS base
|
||||||
|
|
||||||
# Install dependencies only when needed
|
# Install dependencies only when needed
|
||||||
|
|||||||
@ -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 PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c';
|
||||||
const COOKIE_NAME = `a_session_${PROJECT_ID.toLowerCase()}`;
|
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*';
|
const ADMIN_PASSWORD = process.env.ADMIN_PASSWORD || 'AlmeiraAdmin2024*';
|
||||||
|
|
||||||
export async function login(prevState: any, formData: FormData) {
|
export async function login(prevState: any, formData: FormData) {
|
||||||
const emailInput = formData.get('email') as string;
|
const emailInput = formData.get('email') as string;
|
||||||
const password = formData.get('password') 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') {
|
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) {
|
if (password === ADMIN_PASSWORD) {
|
||||||
|
console.log('>>> MODO EMERGENCIA: Acceso concedido.');
|
||||||
const cookieStore = await cookies();
|
const cookieStore = await cookies();
|
||||||
cookieStore.set(COOKIE_NAME, "admin-bypass-session", {
|
cookieStore.set(COOKIE_NAME, "admin-bypass-session", {
|
||||||
path: "/",
|
path: "/",
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
sameSite: "lax",
|
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,
|
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');
|
return redirect('/dashboard');
|
||||||
} else {
|
} 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 {
|
try {
|
||||||
const client = new Client()
|
const client = new Client()
|
||||||
.setEndpoint(ENDPOINT)
|
.setEndpoint(ENDPOINT)
|
||||||
@ -50,16 +55,20 @@ export async function login(prevState: any, formData: FormData) {
|
|||||||
path: "/",
|
path: "/",
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
sameSite: "lax",
|
sameSite: "lax",
|
||||||
secure: false, // Temporalmente false
|
secure: false, // Permitir en HTTP (No Seguro)
|
||||||
maxAge: 60 * 60 * 24 * 7,
|
maxAge: 60 * 60 * 24 * 7,
|
||||||
});
|
});
|
||||||
console.log('Sesión de Appwrite creada exitosamente');
|
console.log('>>> LOGIN APPWRITE: Sesión creada exitosamente');
|
||||||
|
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
if (error.code === 429) {
|
console.error('>>> LOGIN ERROR:', error.message);
|
||||||
return { error: 'Límite de intentos excedido en Appwrite. Usa el acceso de emergencia si es urgente.' };
|
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');
|
redirect('/dashboard');
|
||||||
@ -78,7 +87,9 @@ export async function logout() {
|
|||||||
.setSession(sessionCookie.value);
|
.setSession(sessionCookie.value);
|
||||||
const account = new Account(client);
|
const account = new Account(client);
|
||||||
await account.deleteSession('current');
|
await account.deleteSession('current');
|
||||||
} catch(e) {}
|
} catch(e) {
|
||||||
|
console.error('Error al cerrar sesión en Appwrite:', e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user