s'authentifier à API avec cURL avec un cookie

Ce sujet est résolu
Default
,

Bonjour,
Je suis toute nouvelle là dessus et je galère un peu même si cela doit certainement être basique....
J'ai accès à une API, pour s'authentifier j'utilise un username et un password et c'est censé renvoyer un cookie qui permet l'authentifiaction et ainsi l'accès à l'API (ce n'est pas moi qui ai fait l'API)
Voici comment j'ai essayé de coder pour l'authentification avec des choses trouvées sur internet:

public function test(){

        $cookie_file_path = "cookie.txt";
        $ch = curl_init('http://monURL/login?username=usernam&password=password');
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
        curl_setopt($ch, CURLOPT_URL, 'http://monURL/login?username=admin&password=password');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_USERPWD, "username:password");
       /* curl_setopt_array($ch,
            array(
                CURLOPT_URL => 'http://monUrl/login?username=username&password=password',
                CURLOPT_HTTPAUTH => CURLAUTH_ANY,
                CURLOPT_USERPWD  => "username:password",
                CURLOPT_RETURNTRANSFER   => true,
            )
        );*/
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
        $output = curl_exec($ch);
        $info = curl_getinfo($ch);

        if($output==false){ //la recup de la ressource a pas marché
            echo 'blob';
            var_dump(curl_error($ch));//affiche l'erreur
        }else {
            var_dump(curl_getinfo($ch, CURLINFO_HTTP_CODE));
            $data=json_decode($output, true);
            echo 'blobi';
            var_dump($data);

        }


        curl_close($ch);

        }

Et cela me renvoie blobstring(0) ""
Donc comme il y a blob cela veut dire que l'ouput est faux.

Je ne comprends pas trop... Merci beaucoup pour vos réponses

1 Réponse

35773
,

Deux choses :

  1. Bien analyser les données affichées par "var_dump(curl_getinfo($ch, CURLINFO_HTTP_CODE));" et "var_dump($data);", est-ce qu'il n'y a pas une ou plusieurs données qui feraient référence à une anomalie ?

  2. Consulter la documention de l'API pour vérifier l'existence d'une méthode qui permettrait de récupérer les erreurs encourues lors du dernier appel effectué via ton script.