Пользовательская конечная точка 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>
Author: Aditya Shah, 2018-10-22

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

enter image description here

И эти ресурсы видны в области администратора Magento 2 Система > Разрешения > Роли пользователей . Когда мы нажимаем на кнопку Добавить новую роль или получаем доступ к роли.

Как это,

enter image description here

 2
Author: Aditya Shah, 2018-10-24 09:47:40

Ответ заключался в том, что, несмотря на то, что у меня уже был хороший ключ, поскольку это была новая функциональность, казалось, требовалось повторно авторизовать мой ключ (получить новый токен).

 1
Author: Todd, 2018-11-13 21:48:55

Попробуйте дать разрешение вашему модулю и проверьте.

  1. Создайте файл ниже в своем модуле.
    Файл: 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>
    
  2. Очистить кэш Magento.

  3. Для получения более подробной информации нажмите здесь: Списки управления доступом администратора Magento 2

 0
Author: Jitendra Patel, 2018-10-22 18:19:15