Bonjour,

Je cherche à réaliser un système de vérification de token généré par Firebase (de google) sur mon application Symfony. Pour cela, j'utilise la librairie Kreait\Firebase que j'ai déjà fait fonctionner dans d'autres environnements. Il existe un buddle symfony dédié que j'ai installé via :

composer require kreait/firebase-bundle

Comme indiqué dans la doc, je contrôle mon token via la fonction suivante dans mon système d'authentification :

$verifiedIdToken = $this->auth->verifyIdToken($identifier);

Je sais que la fonction verifyIdToken envoie une requête à l'adresse suivante pour récupérer les clés google actives, nécessaires au contrôle des token firebase :
https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com

Cette requête semble passer via GuzzleHttp\ClientInterface via une méthode request().

Le problème

Désolé pour cette introduction un peu longue, mais voici le problème :

Dans le fichier .env de symfony, lorsque la variable APP_ENV=prod, le système fonctionne correctement et le token est vérifié. Par contre, lorsque APP_ENV=dev, je récupère cette erreur :

[critical] Uncaught PHP Exception Kreait\Firebase\Exception\Auth\FailedToVerifyToken: "The inner handler of Kreait\Firebase\JWT\Action\FetchGooglePublicKeys\WithPsr6Cache (Kreait\Firebase\JWT\Action\FetchGooglePublicKeys\WithGuzzle) failed in fetching keys: The connection to https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com failed: Unable to read from stream" at /home/guillaume/git/pebble-authenticator/vendor/kreait/firebase-php/src/Firebase/Auth.php line 381

C'est comme si en mode développement, symfony n'authorisait pas à envoyer des requêtes à l'extérieur (ici https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com )

Merci par avance pour l'aide apportée ;-) !

Guillaume.

Aucune réponse