Authentification HTTP Curl

Htaccess et script PHP CURL

L'authentification HTTP, par htaccess par exemple, peut être résolue par CURL.

Pour cela, 2 options :

  1. CURLOPT_HTTPAUTH qui sert à indiquer quelle méthode d'authentification utiliser (CURLAUTH_ANY indique à CURL de se débrouiller pour la définir lui même)
  2. CURLOPT_USERPWD qui sert à indiquer le nom d'utilisateur et le mot de passe sous la forme nom_utilisateur:mot_de_passe
<?php

$url = 'https://www.oseox.fr';
$timeout = 10;

$http_auth_ident = ''; // username:password

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

if (preg_match('`^https://`i', $url))
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Définition de la méthode d'authentification du serveur
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

// Définition des identifiants
curl_setopt($ch, CURLOPT_USERPWD, $http_auth_ident);

$page_content = curl_exec($ch);

curl_close($ch);

?>

 

Il est important de noter que, si vous affichez le résultat de la page (le HTML résultant est donc interprété par le navigateur), d'autres demandes d'authentification vous seront faites. Celles-ci correspondent en faite aux fichiers externes de la page (images, CSS, Javascripts...).

A propos de l'auteur

Antoine Beaumont

Antoine Beaumont est Consultant Web et Développeur. Fort d'une expérience construite au sein de grandes agences Web-marketing, pour tous types de comptes, il accompagne désormais les professionnels dans leurs projets Web, de façon souple et objective.