chazovs
@chazovs
Корпорация Центр

Контроллеры Битрикс: как получить доступ к методам корзины для не авторизованных юзеров?

Пишу модуль, который реализует АПИ для взаимодействия с корзиной (сама корзина будет на реакте). У меня есть методы добавления товаров в корзину, удаления товара, листинг и т.д. для тестов я завел страничку test.php, на которой методы из моего модуля вызываются примерно так:

<button onclick="f1()">ADD</button>

function f1() {
            let request = BX.ajax.runAction('mymodulename:controllers.sale.basketitem.add',
                {
                    data: {
                        productId: 303,
                        quantity: 1,
                    }
                }
            );
            request.then(function(response) {
                console.log(response);
            });
        }


И оно работает. НО. Только когда я авторизован на сайте. Если я не авторизован, то требует авторизации. Я думал, что дело в методах корзины. И я написал методы для авторизации на сайте. Но запросы к этим методам он тоже забривает и требует... авторизоваться))))

Кто-то может сталкивался с этой фигней? В стандартном компоненте корзины это точно реализовано без авторизации.. но там такие дебри. Я пока не разобрался..
  • Вопрос задан
  • 646 просмотров
Решения вопроса 1
chazovs
@chazovs Автор вопроса
Корпорация Центр
Вообщем ответ оказался в том, чтобы в классе создать специальный метод:
public function configureActions(): array
    {
        return [
           'update' => [
                '-prefilters' => [
                    Authentication::class,
                ],
            ],
        ];
    }

И в этом методе отключить проверку на авторизацию. в этом же методе можно отключить и проверку csrf. А можно просто передавать с JS
sessid: BX.bitrix_sessid(),
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы