11

I created a new customer and got the token perfectly but when I try to access any API like

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

got the 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>

please any help

1 Answer 1

11

The Authorization token is NOT place on the parameter. Should be set on header instead. Here is an example on POSTMAN:

enter image description here

On cURL, it will be:

curl -X GET --header "Accept: application/json" --header "Authorization: Bearer XXXXXXXXXX" "http://yoursite.com/rest/V1/products/:sku"
5
  • Thanks for your reply, already I tried it on headers or as parameters in url and works perfectly for some api like products as you did and categories, but for some APIs like V1/customers/me, I got the error. Even if i run the curl on terminal, it works perfectly. I use postman and http requester for firefox.
    – Jsparo30
    Commented Dec 14, 2016 at 7:52
  • No problems on my testing site. Did you have a space between "Bearer" and the token? And maybe your token is expired, try to get a new one
    – PY Yick
    Commented Dec 14, 2016 at 7:57
  • HHH, What is a joke !! there was no space and worked fine in products and categories as I mentioned, but when removed it in customers/me worked fine. Please edit the answer and add the part of remove space to give it the true answer. Thanks.
    – Jsparo30
    Commented Dec 14, 2016 at 9:58
  • Actually it's more likely to be token expired. I use the old token to access the API, it shows the same error you stated on question. Just renew the token and the problem solved.
    – PY Yick
    Commented Dec 15, 2016 at 3:20
  • 3
    @Jsparo30 did you found the solution i am also facing same issue Commented Sep 28, 2018 at 6:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.