Bonjour,

Je viens vers vous car j'aimerais avoir un accès à GLPI depuis l'intranet de ma 
société. Je voudrai pouvoir cliquer sur un bouton qui me connectera sur GLPI et 
ouvrira un nouvel onglet pour avoir accès à l'helpdesk.

Seulement j'obtiens ce retour de la part de GLPI quand je tente une 
authentification via cURL.

Warning The action you have requested is not allowed. Reload previous page 
before doing action again.

Voici mon code

$ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, '****/glpi/index.php');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows 
NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
        $page = curl_exec($ch) or die(curl_error($ch));
        curl_close($ch);
        // récupération du token CSRF
        $token = substr($page,strpos($page,"name=\"_glpi_csrf_token\""),64);
        $token = substr($token,strpos($token, "value=") + 6);
        $token = substr($token,1,32);
        $ch = curl_init();

        curl_setopt ( $ch, CURLOPT_URL, "'****/glpi/front/login.php" );
        curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
        curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt ( $ch, CURLOPT_POST, 1 );
        curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
        curl_setopt ( $ch, CURLOPT_POSTFIELDS,  "login_name=" . 
urlencode($login) . "&login_password=" . urlencode($pass) . 
"&_glpi_csrf_token=" . urlencode($token) );
        curl_setopt ( $ch, CURLOPT_ENCODING, "" );
        curl_setopt ( $ch, CURLOPT_COOKIEFILE, 
public_path().'/cookies/cookies.txt' );
        curl_setopt ( $ch, CURLOPT_COOKIEJAR, 
public_path().'/cookies/cookies.txt' );

        curl_setopt ( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows 
NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)" );

        $chData = curl_exec ( $ch );
        echo $chData;


Je récupère bien le bon token CSRF de votre formulaire, je passe un cookie et 
j’ai quand même ce retour à chaque requête.
_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to