Der Verbraucher ist nicht berechtigt, auf% Ressourcen für die Magento2-Rest-API zuzugreifen


9

Ich habe einen neuen Kunden erstellt und das Token perfekt erhalten, aber wenn ich versuche, auf eine API wie diese zuzugreifen

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

habe den Fehler bekommen

<?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>

Bitte jede Hilfe

Antworten:


10

Das Autorisierungstoken wird NICHT in den Parameter eingefügt. Sollte stattdessen auf Header gesetzt werden. Hier ist ein Beispiel für POSTMAN:

Geben Sie hier die Bildbeschreibung ein

Auf cURL wird es sein:

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

Vielen Dank für Ihre Antwort, ich habe es bereits in Headern oder als Parameter in der URL versucht und funktioniert perfekt für einige APIs wie productsSie und categoriesfür einige APIs wie habe V1/customers/meich den Fehler erhalten. Selbst wenn ich die Locke am Terminal laufen lasse, funktioniert es perfekt. Ich benutze Postbote und http Requester für Firefox.
Jsparo30

Keine Probleme auf meiner Testseite. Hattest du ein Leerzeichen zwischen "Träger" und dem Token? Und vielleicht ist Ihr Token abgelaufen, versuchen Sie, einen neuen zu bekommen
PY Yick

HHH, was ist ein Witz !! Es gab keinen Platz und funktionierte gut in productsund categorieswie ich bereits erwähnte, aber wenn es entfernt wurde, customers/mefunktionierte es gut. Bitte bearbeiten Sie die Antwort und fügen Sie den Teil des Bereichs zum Entfernen hinzu, um die richtige Antwort zu erhalten. Vielen Dank.
Jsparo30

Tatsächlich ist es wahrscheinlicher, dass das Token abgelaufen ist. Ich verwende das alte Token, um auf die API zuzugreifen. Es zeigt denselben Fehler, den Sie bei der Frage angegeben haben. Erneuern Sie einfach den Token und das Problem ist gelöst.
PY Yick

@ Jsparo30 haben Sie die Lösung gefunden, mit der ich auch konfrontiert bin
Janarthanan Ramu
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.