Probème authentification sur transformation d'une application web en un client API
Bonjour, J'essaye de transformer une application web autonome en une application web cliente d'une API et j'ai un problème d'authentification. Lorsque j'appelle l'API avec les credentials encapsulés dans un form_params, l'API plante au moment d'accéder à la base de données, voici la ligne d'appel :
public function login(Request $request) {
$client = new Client();
$uri = 'http://localhost/myAPI/public/api/login';
$data = ['email' => $request->input('email'), 'password' => $request->input('password')];
try {
$response = $client->post($uri, ['form_params' => $data]);
. . .
Note: le client est : use GuzzleHttp\Client;
Côté API, le log est le suivant :
local.ERROR: SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) (SQL: select * from users
where email
= ...
Tout se passe comme si l'API utilisait les paramètres BdD du client API au lieu de ceux de l'API !
Côté client :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
Côté API :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myDB
DB_USERNAME=myUser
DB_PASSWORD=myPwd
Si je mets les mêmes paramètres côté client que côté API tout se passe bien !
Lorsque je lance la même requête avec POSTMAN tout se passe bien !
Est-ce que quelqu'un aurait une idée ?
Merci d'avance.
Salut ! J'ai l'impression que ton appli web et ton api tape dans le même .env...
Bonjour, C'est une possibilité mais comment cela est-il possible d'autant que pour vérifier que ce n'était pas le cas j'ai mis l'API sur une machine virtuelle et le client sur la machine réelle et j'ai été cofronté au même problème ! Je me suis aussi demandé si l'accès à la base de données ne se faisait pas avant l'appel de login(), mais non, j'ai mis un point d'arrêt à l'entrée de login et l'erreur se déclenche bien sur l'appel de l'API !
Vous ne pouvez pas répondre à ce sujet.