Files
rm-PAGOs/pagos/api/login.php
T
Ricardo MonlaandClaude Sonnet 4.6 7cb6107cb4 UI: rediseño responsive desktop + fix categorías + plan actualizado
- Sidebar fija en todas las pantallas (md+): logo, nav, logout
- index.html: grid 3/5 + 2/5 en desktop (movimientos | donut chart)
- add.html: 2 columnas desktop (form | monto+numpad), botones mobile/desktop unificados
- historial.html: max-w-3xl, header con botón Nuevo integrado
- dashboard.js: formato de moneda con toLocaleString, skeleton loading, mes dinámico
- add.js: lógica simplificada con doSave(), teclado ignora inputs de texto
- auth.php + login.php: cookie con httponly y SameSite=Lax
- docs/plan/00_PLAN.md: estado actualizado, CLI marcado como fase futura

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 16:41:59 -03:00

31 lines
906 B
PHP

<?php
require_once __DIR__ . '/config.php';
ini_set('session.cookie_httponly', '1');
ini_set('session.cookie_samesite', 'Lax');
session_start();
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = json_decode(file_get_contents('php://input'), true);
if (isset($data['user'], $data['pass'])
&& $data['user'] === AUTH_USER
&& $data['pass'] === AUTH_PASS) {
$_SESSION['qw_auth'] = true;
echo json_encode(['status' => 'success']);
} else {
http_response_code(401);
echo json_encode(['status' => 'error', 'message' => 'Usuario o contraseña incorrectos']);
}
exit;
}
if (($_GET['action'] ?? '') === 'logout') {
session_destroy();
echo json_encode(['status' => 'success']);
exit;
}
http_response_code(405);
echo json_encode(['status' => 'error', 'message' => 'Método no permitido']);