Hecho merge de backend a main de claseUsuario y controladorUsuario
This commit is contained in:
+53
-1
@@ -139,4 +139,56 @@ class Usuario {
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function buscarPorEmail($email) {
|
||||
$conexion = conexionBD();
|
||||
|
||||
if (is_array($conexion)) {
|
||||
return $conexion;
|
||||
}
|
||||
|
||||
try {
|
||||
$sql = "SELECT * FROM usuario WHERE email = :email";
|
||||
$stmt = $conexion->prepare($sql);
|
||||
$stmt->execute([':email' => $email]);
|
||||
|
||||
$datos = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($datos) {
|
||||
return new Usuario(
|
||||
$datos['nombreUsuario'],
|
||||
$datos['contrasena'],
|
||||
$datos['email'],
|
||||
$datos['avatar'],
|
||||
$datos['cookie'],
|
||||
(int)$datos['aciertos'],
|
||||
(int)$datos['victorias'],
|
||||
(int)$datos['derrotas'],
|
||||
(int)$datos['idUsuario']
|
||||
);
|
||||
}
|
||||
|
||||
return null; // No existe usuario con ese email
|
||||
|
||||
} catch (PDOException $error) {
|
||||
return [
|
||||
'error' => 'Ocurrió un error al buscar el usuario por email.',
|
||||
'error_tecnico' => $error->getMessage()
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public static function login($email, $contrasena) {
|
||||
$usuario = self::buscarPorEmail($email);
|
||||
|
||||
if (!($usuario instanceof Usuario)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (password_verify($contrasena, $usuario->getContrasena())) {
|
||||
return $usuario;
|
||||
}
|
||||
|
||||
return null; // Contraseña incorrecta
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user