cotizador/api/auth.php

68 lines
1.8 KiB
PHP

<?php
// Iniciar sesión con configuración segura
require_once '../config/config.php';
session_start();
header('Content-Type: application/json');
require_once '../config/pins.php';
// Verificar que la solicitud sea POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = json_decode(file_get_contents('php://input'), true);
if (isset($data['pin'])) {
$pin = $data['pin'];
$usuario = validarPin($pin);
if ($usuario) {
// PIN válido - crear sesión
$_SESSION['autenticado'] = true;
$_SESSION['usuario'] = $usuario;
$_SESSION['pin'] = $pin;
echo json_encode([
'success' => true,
'usuario' => $usuario,
'mensaje' => 'Acceso concedido'
]);
} else {
// PIN inválido
echo json_encode([
'success' => false,
'mensaje' => 'PIN incorrecto'
]);
}
} else {
echo json_encode([
'success' => false,
'mensaje' => 'PIN no proporcionado'
]);
}
} elseif ($_SERVER['REQUEST_METHOD'] === 'GET') {
// Verificar si hay sesión activa
if (isset($_SESSION['autenticado']) && $_SESSION['autenticado']) {
echo json_encode([
'autenticado' => true,
'usuario' => $_SESSION['usuario']
]);
} else {
echo json_encode([
'autenticado' => false
]);
}
} elseif ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
// Cerrar sesión
session_destroy();
echo json_encode([
'success' => true,
'mensaje' => 'Sesión cerrada'
]);
} else {
echo json_encode([
'success' => false,
'mensaje' => 'Método no válido'
]);
}
?>