El consumidor no está autorizado a acceder a% de recursos para la API de descanso de Magento2

9

Creé un nuevo cliente y obtuve el token perfectamente, pero cuando intento acceder a cualquier API como

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

tengo el error

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

por favor cualquier ayuda

Jsparo30
fuente

Respuestas:

10

El token de autorización NO se coloca en el parámetro. Debe establecerse en el encabezado en su lugar. Aquí hay un ejemplo en POSTMAN:

ingrese la descripción de la imagen aquí

En cURL, será:

curl -X GET --header "Accept: application/json" --header "Authorization: Bearer XXXXXXXXXX" "http://yoursite.com/rest/V1/products/:sku"
PY Yick
fuente
Gracias por su respuesta, ya lo probé en los encabezados o como parámetros en la URL y funciona perfectamente para algunas API productscomo lo hizo y categories, pero para algunas API como V1/customers/me, recibí el error. Incluso si ejecuto el curl en la terminal, funciona perfectamente. Yo uso postman y solicitante http para firefox.
Jsparo30
No hay problemas en mi sitio de prueba. ¿Tuviste un espacio entre "Bearer" y la ficha? Y tal vez su token haya caducado, intente obtener uno nuevo
PY Yick
HHH, ¿Qué es una broma? no había espacio y funcionó bien en productsy categoriescomo mencioné, pero cuando lo quité customers/mefuncionó bien. Edite la respuesta y agregue la parte de eliminar espacio para darle la respuesta verdadera. Gracias.
Jsparo30
En realidad, es más probable que el token haya expirado. Utilizo el token anterior para acceder a la API, muestra el mismo error que indicó en la pregunta. Simplemente renueve el token y el problema se resolverá.
PY Yick
@ Jsparo30, ¿encontró la solución? También estoy enfrentando el mismo problema
Janarthanan Ramu,