Manejo de cookies
This commit is contained in:
@@ -47,24 +47,40 @@ switch ($_POST['orden']) {
|
||||
|
||||
|
||||
case 'comprobarUsuario':
|
||||
|
||||
|
||||
$email = trim($_POST['email'] ?? '');
|
||||
$contrasena = $_POST['contrasena'] ?? '';
|
||||
$recuerdame = isset($_POST['recuerdame']) && ($_POST['recuerdame'] === 'true' || $_POST['recuerdame'] === true);
|
||||
|
||||
$resultado = Usuario::login($email, $contrasena);
|
||||
|
||||
if ($resultado instanceof Usuario) {
|
||||
|
||||
// === AÑADIR ESTAS LÍNEAS PARA GUARDAR EN SESIÓN ===
|
||||
// Guardamos la sesión
|
||||
$_SESSION['idUsuario'] = $resultado->getIdUsuario();
|
||||
$_SESSION['nombreUsuario'] = $resultado->getNombreUsuario();
|
||||
$_SESSION['email'] = $resultado->getEmail();
|
||||
// =================================================
|
||||
$_SESSION['avatar'] = $resultado->getAvatar();
|
||||
|
||||
// Si ha marcado "Recuérdame durante 10 días"
|
||||
if ($recuerdame) {
|
||||
$token = bin2hex(random_bytes(32)); // Token único de 64 caracteres
|
||||
$duracion = time() + (10 * 24 * 60 * 60); // 10 días
|
||||
setcookie('recuerdame_token', $token, $duracion, "/");
|
||||
Usuario::guardarCookieToken($resultado->getIdUsuario(), $token);
|
||||
} else {
|
||||
// Si entra sin marcar recuérdame, limpiamos la cookie
|
||||
if (isset($_COOKIE['recuerdame_token'])) {
|
||||
setcookie('recuerdame_token', '', time() - 3600, "/");
|
||||
}
|
||||
Usuario::guardarCookieToken($resultado->getIdUsuario(), null);
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
'exito' => 'Login correcto',
|
||||
'idUsuario' => $resultado->getIdUsuario(),
|
||||
'nombreUsuario' => $resultado->getNombreUsuario()
|
||||
'nombreUsuario' => $resultado->getNombreUsuario(),
|
||||
'avatar' => $resultado->getAvatar()
|
||||
]);
|
||||
} else {
|
||||
|
||||
@@ -76,13 +92,23 @@ switch ($_POST['orden']) {
|
||||
break;
|
||||
|
||||
|
||||
|
||||
case 'cerrarSesion':
|
||||
|
||||
// Si el usuario tenía token en la BD, lo eliminamos
|
||||
if (isset($_SESSION['idUsuario'])) {
|
||||
Usuario::guardarCookieToken($_SESSION['idUsuario'], null);
|
||||
}
|
||||
|
||||
// Borramos la cookie del navegador
|
||||
if (isset($_COOKIE['recuerdame_token'])) {
|
||||
setcookie('recuerdame_token', '', time() - 3600, "/");
|
||||
}
|
||||
|
||||
// Limpiamos las variables de sesión
|
||||
unset($_SESSION['idUsuario']);
|
||||
unset($_SESSION['email']);
|
||||
unset($_SESSION['nombreUsuario']);
|
||||
unset($_SESSION['avatar']);
|
||||
|
||||
// Destruimos la sesión
|
||||
session_destroy();
|
||||
@@ -228,25 +254,55 @@ switch ($_POST['orden']) {
|
||||
|
||||
break;
|
||||
|
||||
case 'obtenerRanking':
|
||||
$ranking = Usuario::obtenerRanking(5); //Cambiar para mostrar X jugadores en index
|
||||
echo json_encode([
|
||||
'exito' => true,
|
||||
'ranking' => $ranking
|
||||
]);
|
||||
break;
|
||||
case 'obtenerRanking':
|
||||
$ranking = Usuario::obtenerRanking(5); //Cambiar para mostrar X jugadores en index
|
||||
echo json_encode([
|
||||
'exito' => true,
|
||||
'ranking' => $ranking
|
||||
]);
|
||||
break;
|
||||
|
||||
case 'comprobarSesion':
|
||||
if (isset($_SESSION['idUsuario']) && !empty($_SESSION['idUsuario'])) {
|
||||
echo json_encode([
|
||||
'activa' => true,
|
||||
'usuario' => [
|
||||
'idUsuario' => $_SESSION['idUsuario'],
|
||||
'nombreUsuario' => $_SESSION['nombreUsuario'] ?? ''
|
||||
]
|
||||
]);
|
||||
} else {
|
||||
|
||||
//Si hay sesión:
|
||||
|
||||
if (isset($_SESSION['idUsuario']) && !empty($_SESSION['idUsuario'])) {
|
||||
echo json_encode([
|
||||
'activa' => true,
|
||||
'usuario' => [
|
||||
'idUsuario' => $_SESSION['idUsuario'],
|
||||
'nombreUsuario' => $_SESSION['nombreUsuario'] ?? '',
|
||||
'avatar' => $_SESSION['avatar'] ?? ''
|
||||
]
|
||||
]);
|
||||
break;
|
||||
}
|
||||
|
||||
// Si no hay sesión, comprobamos si hay cookie:
|
||||
|
||||
if (isset($_COOKIE['recuerdame_token'])) {
|
||||
$usuarioCookie = Usuario::buscarPorCookie($_COOKIE['recuerdame_token']);
|
||||
|
||||
if ($usuarioCookie instanceof Usuario) {
|
||||
|
||||
$_SESSION['idUsuario'] = $usuarioCookie->getIdUsuario();
|
||||
$_SESSION['email'] = $usuarioCookie->getEmail();
|
||||
$_SESSION['nombreUsuario'] = $usuarioCookie->getNombreUsuario();
|
||||
$_SESSION['avatar'] = $usuarioCookie->getAvatar();
|
||||
|
||||
echo json_encode([
|
||||
'activa' => true,
|
||||
'usuario' => [
|
||||
'idUsuario' => $usuarioCookie->getIdUsuario(),
|
||||
'nombreUsuario' => $usuarioCookie->getNombreUsuario(),
|
||||
'avatar' => $usuarioCookie->getAvatar()
|
||||
]
|
||||
]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//No hay sesión ni hay cookie:
|
||||
echo json_encode(['activa' => false]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
Reference in New Issue
Block a user