Le consommateur n'est pas autorisé à accéder à% des ressources de l'API de repos Magento2


9

J'ai créé un nouveau client et j'ai parfaitement obtenu le jeton, mais lorsque j'essaie d'accéder à n'importe quelle API comme

http://myhost.com/index.php/rest/V1/customers/me?Authorization=Bearerhy23vc01x9s1jd2t8gho47g58trllc0b 

a obtenu l'erreur

<?xml version="1.0"?>
<response>
<message>Consumer is not authorized to access %resources</message>
<parameters>
<resources>self</resources>
</parameters>
  <trace>#0 /var/www/myhost.com/public_html/vendor/magento/module-webapi/Controller/Rest/RequestValidator.php(70): Magento\Webapi\Controller\Rest\RequestValidator-&gt;checkPermissions()
#1 /var/www/myhost.com/public_html/vendor/magento/module-webapi/Controller/Rest/InputParamsResolver.php(80): Magento\Webapi\Controller\Rest\RequestValidator-&gt;validate()
#2 /var/www/myhost.com/public_html/vendor/magento/module-webapi/Controller/Rest.php(299): Magento\Webapi\Controller\Rest\InputParamsResolver-&gt;resolve()
#3 /var/www/myhost.com/public_html/vendor/magento/module-webapi/Controller/Rest.php(216): Magento\Webapi\Controller\Rest-&gt;processApiRequest()
#4 /var/www/myhost.com/public_html/var/generation/Magento/Webapi/Controller/Rest/Interceptor.php(24): Magento\Webapi\Controller\Rest-&gt;dispatch(Object(Magento\Framework\App\Request\Http))
#5 /var/www/myhost.com/public_html/vendor/magento/framework/App/Http.php(135): Magento\Webapi\Controller\Rest\Interceptor-&gt;dispatch(Object(Magento\Framework\App\Request\Http))
#6 /var/www/myhost.com/public_html/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http-&gt;launch()
#7 /var/www/myhost.com/public_html/index.php(39): Magento\Framework\App\Bootstrap-&gt;run(Object(Magento\Framework\App\Http))
#8 {main}</trace>
</response>

s'il vous plaît toute aide

Réponses:


10

Le jeton d'autorisation n'est PAS placé sur le paramètre. Doit être défini sur l'en-tête à la place. Voici un exemple sur POSTMAN:

entrez la description de l'image ici

Sur cURL, ce sera:

curl -X GET --header "Accept: application/json" --header "Authorization: Bearer XXXXXXXXXX" "http://yoursite.com/rest/V1/products/:sku"

Merci pour votre réponse, je l'ai déjà essayé sur les en-têtes ou en tant que paramètres dans l'URL et fonctionne parfaitement pour certaines API comme productsvous l'avez fait et categories, mais pour certaines API comme V1/customers/me, j'ai eu l'erreur. Même si je lance la boucle sur le terminal, cela fonctionne parfaitement. J'utilise postman et http requester pour firefox.
— Jsparo30

Aucun problème sur mon site de test. Aviez-vous un espace entre "Bearer" et le jeton? Et peut-être que votre jeton est expiré, essayez d'en obtenir un nouveau
— PY Yick

HHH, Qu'est-ce qu'une blague !! il n'y avait pas d'espace et fonctionnait bien dans productset categoriescomme je l'ai mentionné, mais une fois retiré, il customers/mefonctionnait bien. Veuillez modifier la réponse et ajouter la partie de supprimer l'espace pour lui donner la vraie réponse. Merci.
— Jsparo30

En fait, il est plus probable que le jeton ait expiré. J'utilise l'ancien jeton pour accéder à l'API, il affiche la même erreur que vous avez indiquée à la question. Renouvelez simplement le jeton et le problème est résolu.
— PY Yick

@ Jsparo30 avez-vous trouvé la solution, je suis également confronté au même problème
— Janarthanan Ramu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.