Bonjour, s'il vous plait j'interoge une API de l'application ZK Bio time, pour recupérer la liste des utilisateurs, malheureusement j'ai une erreur (string(58) "{"detail":"Informations d'authentification non fournies."}"). voici mon code :
<?php
// Endpoint pour obtenir le token
$token_url = 'http://127.0.0.1/jwt-api-token-auth/';
// Informations d'identification pour l'API
$username = 'admin';
$password = 'Api12345678';
// Données à envoyer avec la requête POST
$post_data = array(
'username' => $username,
'password' => $password
);
// Initialisation de cURL
$curl = curl_init();
// Configuration de la requête POST
curl_setopt_array($curl, array(
CURLOPT_URL => $token_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($post_data),
CURLOPT_SSL_VERIFYHOST => false, // Désactiver la vérification du certificat
CURLOPT_SSL_VERIFYPEER => false,
));
// Exécution de la requête et récupération de la réponse
$response = curl_exec($curl);
// Vérification de la réponse
if ($response === FALSE) {
// Gestion des erreurs
echo 'Erreur lors de la récupération du token : ' . curl_error($curl);
} else {
// Analyse de la réponse JSON pour extraire le token
$data = json_decode($response, true);
if (isset($data['token'])) {
// Récupération du token
$token = $data['token'];
// Utilisation du token dans une autre requête vers une ressource protégée par l'API
$resource_url = 'http://127.0.0.1/personnel/api/employees/';
// Exemple de requête avec le token dans l'en-tête d'autorisation
$headers = array(
'Authorization: JWT '.$token
);
// Initialisation d'une nouvelle session cURL
$curl_resource = curl_init();
curl_setopt_array($curl_resource, array(
CURLOPT_URL => $resource_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_SSL_VERIFYHOST => false, // Désactiver la vérification du certificat
CURLOPT_SSL_VERIFYPEER => false,
));
// Exécution de la requête et récupération de la réponse de la ressource
$resource_response = curl_exec($curl_resource);
// Vérification de la réponse de la ressource
if ($resource_response === FALSE) {
// Gestion des erreurs
echo 'Erreur lors de la récupération de la ressource : ' . curl_error($curl_resource);
} else {
// Affichage de la réponse de la ressource
echo 'Réponse de la ressource protégée : ' . $resource_response;
}
// Fermeture de la session cURL pour la ressource
curl_close($curl_resource);
} else {
// Gestion des cas où le token n'est pas trouvé dans la réponse
echo 'Token non trouvé dans la réponse';
}
}
// Fermeture de la session cURL
curl_close($curl);
?>
Voici la documentation de l'API :
Get JWT Auth Token
RequestMethod: POST
Url: /jwt-api-token-auth/
Headers:
Content-Type: application/json
Body: {
"username": "username",
"password": "password"
}
Request
Method: GET
Url: /personnel/api/employees/
Headers:
Content-Type: application/json
Authorization: "JWT ey.........oQi98"