Есть ли поддержка клиентских сессий через REST API Magento?

9

Я работаю над расширением функциональности списка желаний для REST API Magento. Было бы неплохо получить доступ к сессии клиента. Поддерживает ли Magento доступ к сеансу клиента через REST?

Ryre
источник
Зачем вам нужен сеанс доступа? Элементы списка желаний хранятся в БД и имеют ссылку на идентификатор клиента. ..И может быть, я что-то упускаю
Мариус
Потому что у меня нет идентификатора клиента.
Ryre
2
Хорошо ... швы справедливы ... извините за мое невежество :)
Мариус
Не беспокойся! Мой вопрос был краток, поэтому, возможно, небольшое пояснение.
Ryre
Как я читал в документации по Magento REST API, нет доступа к сеансу через REST. Вы думали об использовании oAuth?
Анна Фёлькл,

Ответы:

5

Как упоминалось в моих комментариях выше, я бы порекомендовал предоставить пользователю логин с oAuth, чтобы получить доступ к customerID. Чтобы ответить на ваш вопрос: Нет, доступ к сеансу клиента невозможен.

Поток может быть следующим:

  1. Пользователь заходит на сторонний веб-сайт, где вы хотите предоставить функциональность списка желаний
  2. Функциональность списка пожеланий пользователя / список пожеланий (добавление нового элемента в список пожеланий, отображение его списка пожеланий и т. Д.)
  3. Пользователь входит через oAuth в ваш магазин magento
  4. Получить идентификатор клиента из oAuth
  5. Продолжайте работу со списком пожеланий

Для авторизации пользователя я рекомендую вам следовать разделам «Получение токена неавторизованного запроса» и «Авторизация пользователя» на этой странице .

Анна Фёлькл
источник
Ваш ответ первым предложил работоспособное решение!
Ryre
Какой приемлемый способ получения идентификатора клиента от oAuth? Я не вижу такой функциональности нигде в их документах.
Степан Мазуров
Я понял это. Для тех, у кого есть такая же проблема, убедитесь, что у вашей роли «клиента» есть разрешения на доступ к API
Степан Мазуров
Здравствуйте @Anna Völkl, Как я могу получить идентификатор клиента в magento REST API? Потому что, когда я передаю токен клиента в Заголовке, мне нужен идентификатор клиента, какой токен клиента принадлежит этому конкретному токену клиента в magento 2
Адитья Шах,
API моих продуктов возвращает продукты, и если я пытаюсь связаться с клиентом, я получаю сообщение об ошибке, мой URL: 192.168.1.65/anusthana/api/rest/customers error: snag.gy/0jbhTr.jpg Можете ли вы мне помочь @Anna
zus
6

Нет.

Сеанс клиента привязан к внешнему файлу cookie, который есть у клиента, просматривающего страницу. Если вы используете файловые сеансы, они будут храниться в var / session / - если вы используете базу данных в качестве хранилища сеансов, она будет храниться в core_session.

В любом случае, чтобы получить доступ к нему, вам нужно знать идентификатор_сессии от клиента, который по своей конструкции должен находиться только между браузером и сервером. * 1)

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

Еще одна вещь, которую нужно иметь в виду, это то, что сеанс, который вы установили для связи с API, является отдельным от сеанса, который имеет клиент.

В целом, я чувствую, что вы получите более действенный ответ, если вы опубликуете, чего именно вы пытаетесь достичь, с помощью списка пожеланий с указанием ваших текущих ограничений.

* 1) вы можете прочитать текущий используемый сеанс cookie и сохранить его в базе данных для дальнейшей обработки, но вам снова понадобится некоторая другая информация, чтобы связать ее с логикой, которую вы сейчас пытаетесь реализовать, поэтому я не буду увидеть любое использование для этого здесь.

Кристоф в Фуман
источник
спасибо за отличный ответ. Моя конечная цель - получить доступ к данным клиента через REST, которые клиент видит при входе в интерфейс: история заказов, сохраненные адреса и т. Д.
Ryre
Еще немного контекста, безусловно, поможет. Какое приложение делает эти запросы? Я предполагаю, что у вас есть не-Magento веб-сайт, на котором вы хотите отобразить данные Magento, но это не совсем понятно из вашего вопроса и может быть совсем другим. Предложения OAuth включают действия, которые клиент должен будет выполнить. Другие подходы включают разделение сеанса между двумя системами (например, взгляните на различные интеграции WordPress).
Кристоф на Fooman
Ваше предположение довольно близко! Я помогаю расширить базовые службы REST для приложения для iPhone. Внешний интерфейс решает проблему, с которой я столкнулся; извините за то, что не задал более четкий вопрос.
Ryre
1

Я думаю, что вы ищете, это сочетание REST API и OAuth Magento. С OAuth интерфейсный пользователь может войти в среду Magento, предоставив приложению (стороннему) и доступ к своим данным клиента, таким как история заказов.

Насколько я знаю, это как можно ближе к сеансу клиента с помощью API.

Проверьте эту документацию Magento на предмет и также эту хорошую статью Inchoo

Сандер Мангель
источник