Người tiêu dùng không được phép truy cập% tài nguyên cho API nghỉ Magento2


9

Tôi đã tạo một khách hàng mới và nhận được mã thông báo hoàn hảo nhưng khi tôi cố gắng truy cập bất kỳ API nào như

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

có lỗi

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

xin mọi người giúp đỡ

Câu trả lời:


10

Mã thông báo ủy quyền KHÔNG được đặt trên tham số. Nên được đặt trên tiêu đề thay thế. Đây là một ví dụ về POSTman:

nhập mô tả hình ảnh ở đây

Trên cURL, nó sẽ là:

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

Cảm ơn câu trả lời của bạn, tôi đã thử nó trên các tiêu đề hoặc như các tham số trong url và hoạt động hoàn hảo cho một số api như productsbạn đã làm và categories, nhưng đối với một số API như V1/customers/me, tôi đã gặp lỗi. Ngay cả khi tôi chạy curl trên terminal, nó vẫn hoạt động hoàn hảo. Tôi sử dụng postman và http yêu cầu cho firefox.
Jsparo30

Không có vấn đề trên trang web thử nghiệm của tôi. Bạn đã có khoảng cách giữa "Bearer" và mã thông báo chưa? Và có thể mã thông báo của bạn đã hết hạn, hãy thử lấy một mã mới
PY Yick

HHH, một trò đùa là gì !! không có không gian và hoạt động tốt trong productscategoriesnhư tôi đã đề cập, nhưng khi loại bỏ nó customers/mehoạt động tốt. Vui lòng chỉnh sửa câu trả lời và thêm phần không gian để cung cấp cho câu trả lời đúng. Cảm ơn.
Jsparo30

Trên thực tế, nhiều khả năng mã thông báo đã hết hạn. Tôi sử dụng mã thông báo cũ để truy cập API, nó hiển thị cùng một lỗi bạn đã nêu trong câu hỏi. Chỉ cần gia hạn mã thông báo và vấn đề được giải quyết.
PY Yick

@ Jsparo30 bạn đã tìm thấy giải pháp tôi cũng đang gặp phải vấn đề tương tự
Janarthanan Ramu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.