Il consumatore non è autorizzato ad accedere a% di risorse per l'API di riposo Magento2


9

Ho creato un nuovo cliente e ho ottenuto il token perfettamente, ma quando provo ad accedere a qualsiasi API simile

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

ottenuto l'errore

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

per favore qualsiasi aiuto

Risposte:


10

Il token di autorizzazione NON è posizionato sul parametro. Dovrebbe invece essere impostato sull'intestazione. Ecco un esempio su POSTMAN:

inserisci qui la descrizione dell'immagine

Su cURL sarà:

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

Grazie per la tua risposta, l'ho già provato sulle intestazioni o come parametri in url e funziona perfettamente per alcune API come productshai fatto tu categories, ma per alcune API come V1/customers/me, ho ricevuto l'errore. Anche se eseguo il ricciolo sul terminale, funziona perfettamente. Uso postino e requester http per firefox.
Jsparo30,

Nessun problema sul mio sito di test. Hai avuto uno spazio tra "Bearer" e il token? E forse il tuo token è scaduto, prova a prenderne uno nuovo
PY Yick il

HHH, cos'è uno scherzo !! non c'era spazio e funzionava bene dentro productse categoriescome ho già detto, ma una volta rimosso customers/mefunzionava bene. Modifica la risposta e aggiungi la parte di rimozione dello spazio per dargli la risposta vera. Grazie.
Jsparo30,

In realtà è più probabile che il token sia scaduto. Uso il vecchio token per accedere all'API, mostra lo stesso errore che hai dichiarato in questione. Basta rinnovare il token e il problema risolto.
PY Yick,

@ Jsparo30 hai trovato la soluzione che sto affrontando anche io stesso problema
Janarthanan Ramu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.