REST API для Magento 2Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 REST API для Magento 2

Сообщение Anonymous »

Я пытаюсь создать клиент node.js для Magento REST API.
Я использую версию сообщества, работающую на моем собственном сервере CentOS.

Шаги, которые я выполняю для использования API:
  • Создайте пользователя с ролью администратора в панели администратора Magento
    < li>Создать новую интеграцию
  • Активировать интеграцию (после этого я получаю ConsumerKey, ConsumerSecret, AccessToken, SecretToken)
Проблема в том, что когда я пытаюсь отправить запрос на любую конечную точку, я получаю:

Код: Выделить всё

{
Client is not authorized to access this resource: ResourceName
}
запрос:

Код: Выделить всё

request({
url: this.url+endpoint,
method: 'GET',
headers:{
'Authorization': 'Bearer '+bearer,
'User-Agent': '...',
'Accept' : 'application/json',
'Content-Type': 'application/json'
}
}, (error, response, body) => {
callback(error,response,body)
})

})
Я правильно получаю токен носителя (я проверил его) по этому запросу:

Код: Выделить всё

request({
url: this.url+'integration/admin/token',
method: 'POST',
json:{
username: this.username,
password: this.password
}
}, (error, response, body) => {
callback(body)
})
Просматривая установку magento, я столкнулся с запросом авторизации:

Код: Выделить всё

 public function isAllowed($resource, $privilege = null)
{
return $this->_aclPolicy->isAllowed($this->_aclRoleLocator->getAclRoleId(), $resource, $privilege);
}
Если я перейду в

Код: Выделить всё

return true
Я получаю доступ ко всем ресурсам без аутентификации, но это не то, что мне нужно

Я проверил функция

Код: Выделить всё

getAclRoleId()
и я нашел этот DefaultRoleLocator.php

Код: Выделить всё

namespace Magento\Framework\Authorization\RoleLocator;

class DefaultRoleLocator implements
\Magento\Framework\Authorization\RoleLocatorInterface
{
/**
* Retrieve current role
*
* @return string
*/
public function getAclRoleId()
{
return '';

}
}
Я не очень хорошо разбираюсь в PHP и новичок в magento.
Даже аутентификация oauth не работает.
Мне нужно изменить эту функцию?
Мне нужно создать еще один класс RoleLocator?

Буду очень признателен за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/486 ... 2-rest-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»