Récupération de jetons API avec PHP
Vous souhaitez créez un wrapper pour l'API de votre entreprise. Pour vous authentifier auprès de l'API, vous devez extraire les jetons du corps de réponse des requêtes POST. En utilisant la populaire bibliothèque Guzzle, vous rencontrez des difficultés pour accéder au jeton dans l'objet de réponse Guzzle.
Implémentation de Guzzle PSR-7
Guzzle adhère au PSR-7 standard, qui utilise des wrappers de flux pour les corps de réponse. Ces wrappers de flux, implémentés à l'aide de flux temporaires PHP, stockent les données du corps de la réponse.
Accès au corps de la réponse
Pour obtenir le corps de la réponse complet, vous pouvez utiliser le casting de chaînes de PHP opérateur :
$contents = (string) $response->getBody();
Alternativement, la méthode getContents() du flux peut être used:
$contents = $response->getBody()->getContents();
La principale différence entre ces approches réside dans le comportement de getContents(), qui ne renvoie le contenu restant qu'après le premier appel. Les appels suivants renverront une chaîne vide à moins que la position du flux ne soit ajustée à l'aide de rewind() ou seek().
Exemple de code
'http://companysub.dev.myapi.com/']); $response = $client->post('api/v1/auth/', [ 'form_params' => [ 'username' => $user, 'password' => $password ] ]); // Convert response body to string and decode JSON $contents = (string) $response->getBody(); $data = json_decode($contents, true); // Extract token $token = $data['data']['token'];
Une fois le jeton obtenu , vous pouvez procéder à son utilisation pour l'authentification API.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!