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

Jsparo30
la source

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"
PY Yick
la source
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