Jump to content

Erreur 401 Unauthorized lors d'une requête API via token


Recommended Posts

Bonjour à tous,

Je rencontre un soucis depuis le 18 janvier lors de la connexion au webservice prestashop.
En effet lorsque j'effectue une requête de ce type

curl --location --request GET 'https://www.levapoteur-discount.fr/api?output_format=JSON' \
--header 'Authorization: Basic mon_token' \
--header 'Cookie: PrestaShop-a0068182d2d97cdcf589b01a2744b8f7=def50200264c1a3f965ae525380c4e1580c11575cdbd7ee727bb490ff1671b58b505135b7e9db1c9435a8ff0da166b65dd8f3ed53419a98efb1cd0534df4d2e2ea08bb29097db1ff562728c7f4c45504fd3be619ee2e299d4c5d7f82b8668316e6a9ada6d13334f5e272952e77cd3410435560259849770548b4eefeb74c699b4c0600e23f582f31ad2aa15e40e6ac8033eae7d9ab7a467ccdf6df26b7cb82b65b3bbb'

J'obtiens le résultat suivant

Quote

401 Unauthorized

Et dans les headers de la réponse, je peux observer ceci

Quote

Basic realm="Welcome to PrestaShop Webservice, please enter the authentication key as the login. No password required."

Nous utilisons cette méthode de connexion depuis le 4 Août 2020 et nous n'avons pas eu le moindre soucis avant.

 

J'ai donc cherché sur le forum pour trouver une solution et je suis tombé sur cette réponse : 

Le problème, c'est qu'en ajoutant :

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule . - [E=HTTP_AUTHORIZATION:%1]

Au .htaccess, cela a fait planter le site web. Nous avons donc supprimé la modification, et de plus, la requête ne fonctionnait toujours pas.

 

J'ai donc continué mes recherches et je suis tombé sur cette méthode : 

La requête suivante fonctionne : 

curl --location --request GET 'https://www.levapoteur-discount.fr/api?output_format=JSON&ws_key=mon_token' \
--header 'Cookie: PrestaShop-a0068182d2d97cdcf589b01a2744b8f7=def50200264c1a3f965ae525380c4e1580c11575cdbd7ee727bb490ff1671b58b505135b7e9db1c9435a8ff0da166b65dd8f3ed53419a98efb1cd0534df4d2e2ea08bb29097db1ff562728c7f4c45504fd3be619ee2e299d4c5d7f82b8668316e6a9ada6d13334f5e272952e77cd3410435560259849770548b4eefeb74c699b4c0600e23f582f31ad2aa15e40e6ac8033eae7d9ab7a467ccdf6df26b7cb82b65b3bbb'

En passant mon token à l'aide du paramètre ws_key cela fonctionne correctement.

Plusieurs questions se posent donc

- Pourquoi la méthode précédente à t-elle cessé de fonctionner le 18 janvier ? 
- Pourquoi cette méthode avec le paramètre ws_key n'est elle pas expliquée dans la documentation ?
- Cette méthode est-elle sécurisée ? Au moins autant que d'avoir le token dans le header ?

Merci d'avance pour votre aide,

Melvin

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More