Пользовательская конечная точка API REST - Потребитель не имеет права доступа к ресурсам % - Индексатор Magento::Индексатор
Я пытаюсь предоставить метод getLatestUpdated()
класса Indexer
через API REST. Конечная точка получает токен аутентификации и все такое - я могу без проблем использовать защищенные конечные точки. Какие ресурсы я должен был запросить или как я могу дать разрешение своему расширению на использование ресурса?
Вот как выглядит мой webapi.xml
:
<?xml version="1.0"?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route url="/V1/GetIndexerInfo/id/:id" method="GET">
<service class="MyCompany\GetIndexerInfo\Api\GetIndexerInfoInterface" method="getInfo"/>
<resources>
<resource ref="Magento_Indexer::Indexer"/>
</resources>
</route>
</routes>
3 answers
-
ref.
Требуется. Ссылочный ресурс. -
Допустимыми значениями являются
self
,anonymous
, или ресурс Magento, такой какMagento_Customer::group
.
<route url="/V1/customers/:id" method="PUT"> <service class="Magento\Customer\Api\CustomerRepositoryInterface" method="save"/> <resources> <resource ref="Magento_Customer::manage"/> </resources> </route>
Теперь откройте acl.xml файл, в котором ref
определен ресурс Magento, Magento_Customer::manage
И эти ресурсы видны в области администратора Magento 2 Система > Разрешения > Роли пользователей . Когда мы нажимаем на кнопку Добавить новую роль или получаем доступ к роли.
Как это,
Ответ заключался в том, что, несмотря на то, что у меня уже был хороший ключ, поскольку это была новая функциональность, казалось, требовалось повторно авторизовать мой ключ (получить новый токен).
Попробуйте дать разрешение вашему модулю и проверьте.
-
Создайте файл ниже в своем модуле.
Файл: app/code/Neo/Yourmodulename/etc/acl.xml<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd"> <acl> <resources> <resource id="Magento_Backend::admin"> <resource id="Neo_Yourmodulename::helloworld" title="Hello World" sortOrder="51"> </resource> </resource> </resources> </acl> </config>
Очистить кэш Magento.
Для получения более подробной информации нажмите здесь: Списки управления доступом администратора Magento 2