Создайте пользовательскую конечную точку VirtoCommerce API с аутентификацией VC platform API

#virtocommerce

#virtocommerce

Вопрос:

как следует из названия, я хочу расширить конечные точки API платформы VC с помощью встроенной аутентификации API (через ключ API).

Я следовал руководству по созданию управляемого модуля, и я могу успешно выполнять вызовы API. Однако она не включает никакой аутентификации. Мне интересно, как бы мне этого добиться?

Другой вопрос заключается в том, что для того, чтобы VC Storefront мог использовать мои конечные точки пользовательского API, мне пришлось бы сгенерировать модуль API с использованием автозапуска в проекте VC Storefront, правильно?

Спасибо всем заранее!

Комментарии:

1. Правильно ли я понимаю проблему: вы хотите, чтобы ваш API был ограничен, но теперь вы можете получить к нему доступ анонимно. Правильно?

2. На самом деле я ошибся. Оказалось, что я регистрировался как администратор на платформе VC и попробовал вызвать API. Как только я удалил cookie, я больше не могу вызывать API. Вчера я фактически предоставил конечные точки пользовательского API для витрины магазина VC и получил успешный возврат от API. Приветствия 🙂

Ответ №1:

VC использует API платформы с APIRequestHandler, который использует ApppId и SecretKey для добавления заголовка к каждому запросу API:

 request.Headers.Authorization = new AuthenticationHeaderValue("HMACSHA256", signature.ToString());
  

Затем обработчик используется каждой конечной точкой — ссылка на код.

Более подробную информацию об аутентификации можно найти здесь: Работа с platform API.

Другой вопрос заключается в том, что для того, чтобы VC Storefront мог использовать мои конечные точки пользовательского API, мне пришлось бы сгенерировать модуль API с использованием автозапуска в проекте VC Storefront, правильно?

Да, правильно.

Комментарии:

1. Привет, Андрей, спасибо за ответ. У меня действительно получилось. Я неправильно понял, как работает модуль. Я забыл, что модуль был установлен на платформе, и все конечные точки доступны через Platform API, поэтому аутентификации должны работать с ним. Теперь я могу использовать все свои конечные точки через приложение Storefront 🙂 Спасибо!