Konsument nie ma uprawnień dostępu do% zasobów dla pozostałego interfejsu API Magento2

9

Utworzyłem nowego klienta i otrzymałem token doskonale, ale kiedy próbuję uzyskać dostęp do dowolnego interfejsu API

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

dostałem błąd

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

proszę o wszelką pomoc

Jsparo30
źródło

Odpowiedzi:

10

Token autoryzacji NIE jest umieszczany w parametrze. Zamiast tego powinien być ustawiony na nagłówek. Oto przykład na POSTMAN:

wprowadź opis zdjęcia tutaj

Na cURL będzie to:

curl -X GET --header "Accept: application/json" --header "Authorization: Bearer XXXXXXXXXX" "http://yoursite.com/rest/V1/products/:sku"
PY Yick
źródło
Dzięki za odpowiedź, już próbowałem na nagłówkach lub jako parametry w adresie URL i działa idealnie dla niektórych interfejsów API takich productsjak ty i categories, ale dla niektórych interfejsów API V1/customers/me, mam błąd. Nawet jeśli uruchomię curl na terminalu, działa idealnie. Do firefox używam listonosza i requestera HTTP.
Jsparo30,
Brak problemów na mojej stronie testowej. Czy masz odstęp między „Nosicielem” a tokenem? A może twój token wygasł, spróbuj zdobyć nowy
PY Yick,
HHH, co to za żart !! nie było miejsca i działało dobrze productsi categoriesjak wspomniałem, ale po usunięciu customers/medziałało dobrze. Edytuj odpowiedź i dodaj część usuwania spacji, aby dać jej prawdziwą odpowiedź. Dzięki.
Jsparo30,
W rzeczywistości jest bardziej prawdopodobne, że wygasł token. Używam starego tokena, aby uzyskać dostęp do interfejsu API, pokazuje ten sam błąd, który podałeś w pytaniu. Wystarczy odnowić token i problem został rozwiązany.
PY Yick,
@ Jsparo30, czy znalazłeś rozwiązanie, przed którym
stoję