2017-06-15 2 views
0

Dans Prestashop 1.7, j'essaie d'interagir avec le service Web en utilisant prestapyt.Erreur d'authentification du service Web Prestashop 1.7

from prestapyt import PrestaShopWebServiceDict 
prestashop = PrestaShopWebServiceDict('http:\\hostname.ext\api', 'APIKEY') 
ps = prestashop.search('addresses') 

Je reçois cette erreur

prestapyt.prestapyt.PrestaShopAuthenticationError: 'Unauthorized' 

Pour essayer de comprendre si est une erreur de la bibliothèque, j'ai tryied pour se connecter à l'API via un navigateur.

Connexion à http: \ hostname.ext \ api Je reçois une requête de connexion.

L'insertion dans le nom d'utilisateur a déposé le champ APIKEY et de laisser le mot de passe vide as indicated here Je reçois à nouveau l'erreur non autorisée.

Le authetication configuration standard ne le APIKEY que querystring

http:\\hostname.ext\api?&ws_key=APIKEY 

Mais cette méthode n'est pas disponible dans prestapyt cette session utilisateur authetication.

Il y a-t-il un paramètre sur Prestashop que j'ai manqué ou un moyen de comprendre ce problème?

Merci

Répondre

3

trouvé le problème et résolu le cas de cette façon.

Le problème n'est pas lié à Prestashop ou à prestapyt mais à la configuration du serveur (Apache + PHP). Considérant que dans mon cas, je travaille dans un service cloud géré, je n'ai pas d'informations détaillées à ce sujet.

Mais le résultat de cette configuration est que l'en-tête Autorisation n'apparaît pas dans la variable $_SERVER. Le même comportement a rapporté ici:

Why are $_SERVER[“PHP_AUTH_USER”] and $_SERVER[“PHP_AUTH_PW”] not set?

Je résolus d'ajouter cette déclaration au fichier .htaccess dans mon installation Prestashop:

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 

Comme suggéré here.

J'espère aider d'autres utilisateurs de Prestashop qui encourent le même problème.

+1

J'ai résolu mon problème. Merci! – vosicz