Realice la autenticación HTTP usando PHP Curl
-
Introducción a
php-curl -
Instalación de la Librería
php-curlen Ubuntu - Realice la autenticación HTTP básica desde un formulario HTML
-
Realice la autenticación HTTP básica utilizando
cURL
Este tutorial demuestra cómo realizar la autenticación HTTP utilizando PHP cURL en Ubuntu.
Introducción a php-curl
cURL (URL de cliente) es una utilidad de línea de comandos que envía o recibe datos y archivos. Utiliza la sintaxis de URL y admite protocolos como FTP, FTPS, DICT, HTTP, HTTPS, etc.
La biblioteca cURL está disponible en PHP, llamada php-curl. Podemos usar esta biblioteca para comunicarnos con los servidores mediante el envío de solicitudes HTTP en PHP.
Podemos realizar varias tareas como configurar cookies, usar proxies, pasar datos a través de conexiones SSL e incluso autenticación usando php-curl.
Veamos las funciones básicas de php-curl.
-
curl_init()- Inicializa una sesióncURL. -
curl_close()- Cierra una sesión decURL. -
curl_setopt(handle, option, value)- Establece la opción para la sesióncURL. Aquí,handlees el valor devuelto porcurl_init().El parámetro
opciónpuede tener un amplio valor de opciones. Puede encontrar la lista de opciones aquí.Se utiliza de acuerdo a la necesidad. El parámetro
valortiene el valor de la opción. -
curl_exec()- Ejecuta la sesión predefinidacURL.
Instalación de la Librería php-curl en Ubuntu
Antes de realizar la autenticación, debemos verificar si php-curl está instalado en nuestro sistema. Podemos hacerlo con el siguiente comando.
php -m
El comando enumera los módulos PHP compilados. Si puede ubicar curl en la lista, significa que php-curl está instalado.
También puede verificar su instalación comprobando la salida de la función phpinfo(). Si está instalado, aparecerá una tabla para curl en la salida.
Si php-curl no está instalado, puede instalarlo mediante el siguiente comando.
sudo apt-get install php-curl
Después de la instalación, abra el archivo php.ini y busque la línea a continuación.
;extension=curl
Descomente la línea anterior como se muestra a continuación.
extension=curl
El paso final es reiniciar el servidor con cualquiera de estos comandos.
sudo systemctl start apache2
sudo /etc/init.d/apache2 start
Realice la autenticación HTTP básica desde un formulario HTML
En primer lugar, realizaremos una autenticación básica utilizando únicamente el método HTTP POST. Crearemos un formulario de inicio de sesión HTML que acepte nombre de usuario y contraseña.
Verificaremos la entrada del usuario con un conjunto de credenciales de inicio de sesión predefinidas. A continuación, realizaremos la autenticación HTTP con métodos cURL.
Por ejemplo, cree un directorio curl en /var/www/html y luego cree un archivo login.php. En el archivo PHP, cree un formulario de inicio de sesión usando HTML.
Escriba los atributos nombre como uname y contraseña para nombre de usuario y contraseña, como se muestra en el ejemplo a continuación.
Ejemplo de código:
<form action="login.php" method="post">
<input type="text" placeholder="Enter Username" name="uname" required><br>
<input type="password" placeholder="Enter Password" name="pass" required><br>
<button type="submit" >Login</button>
</form>
A continuación, abra la etiqueta PHP y utilice la función isset() para comprobar si el nombre de usuario y la contraseña son iguales a usuario123 y contraseña123. Utilice la condición if para mostrar el mensaje en consecuencia, como se muestra en el siguiente ejemplo.
if(isset($_POST['uname'])&& isset($_POST['pass']))
if($_POST['uname']=='user123' && $_POST['pass']=='password123'){
echo "login successful";
}
else{
echo "login failed";
}
Ahora, abra el archivo desde el servidor y complete las credenciales de inicio de sesión de la siguiente manera.
username=user123
password=password123
Producción:

Puede verificar la solicitud HTTP en la pestaña Red de la opción Inspeccionar elemento, como se muestra a continuación.

Puede probar la autenticación enviando las credenciales incorrectas al formulario, mostrando el mensaje “error de inicio de sesión”. Las credenciales incorrectas también se pueden ver desde la pestaña Solicitar, como en la imagen de arriba.
Realice la autenticación HTTP básica utilizando cURL
Podemos realizar la autenticación HTTP utilizando los métodos cURL mencionados anteriormente. Primero, debemos crear una carga útil para enviar la solicitud HTTP al servidor.
Por ejemplo, cree un archivo post.php dentro del directorio curl. En el archivo PHP, cree una matriz $data y almacene las credenciales de inicio de sesión correctas, como se muestra a continuación.
$data = array(
"uname" => "user123",
"pass" => "password123",
"form" => "submit"
);
A continuación, cree una variable ch para almacenar la sesión cURL. Asigne la función curl_init() con la URL http://localhost/curl/login.php a ch.
Después de eso, use la función curl_setopt() para configurar las diversas opciones para la sesión cURL. Establezca CURLOPT_FOLLOWLOCATION, CURLOPT_POST y CURLOPT_RETURNTRANSFER en TRUE.
Proporcione la carga útil $data para la opción CURLOPT_POSTFIELDS. Para la opción CURLOPT_COOKIEJAR, escriba el nombre del archivo de la cookie cookie.txt.
Debe crear un archivo cookie.txt vacío para almacenar la cookie en el directorio del proyecto.
http://localhost/curl/login.phpes la URL de destino donde enviamos la solicitud concURL.- La opción
CURLOPT_FOLLOWLOCATIONestablecida enTRUEsigue a cualquier ubicación de encabezado que sea redirigida porLocation: header(). - La opción
CURLOPT_POSTconfigurada enTRUEinforma a la sesión que se trata de una peticiónPOSTal servidor. - La opción
CURLOPT_POSTFIELDSdefine el payload enviado en la solicitud. - La opción
CURLOPT_COOKIEJARguarda las cookies en el archivocookie.txtdespués de cerrar la sesióncURL. - La opción
CURLOPT_RETURNTRANSFERestablecida enTRUEdevuelve la respuesta decurl_exec()en lugar de la entrada directa.
Finalmente, escribe la función curl_exec() con ch como parámetro para ejecutar la sesión cURL y cierra la sesión con curl_close(). Por último, muestra la función de salida curl_exec().
Ejemplo de código:
$ch = curl_init('http://localhost/curl/login.php');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
Luego, ejecuta el script post.php. Se recibe el siguiente resultado ya que las credenciales son correctas en la carga útil.

La salida dirá inicio de sesión fallido si usamos las credenciales incorrectas.
Por lo tanto, este tutorial demostró cómo realizar una autenticación básica de cURL en PHP.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn