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


9

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


Зачем вам нужен сеанс доступа? Элементы списка желаний хранятся в БД и имеют ссылку на идентификатор клиента. ..И может быть, я что-то упускаю
— Мариус

Потому что у меня нет идентификатора клиента.
— 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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.