s'authentifier à API avec cURL avec un cookie

Par Romane Pm, il y a 6 ans


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

Soundboy39, il y a 6 ans

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.