¿Existe soporte para la sesión del cliente a través de la API REST de Magento?

9

Estoy trabajando para extender la funcionalidad de la lista de deseos a la API REST de Magento. Sería bueno acceder a la sesión del cliente. ¿Magento tiene algún soporte para acceder a la sesión del cliente a través de REST?

Ryre
fuente
¿Por qué necesitas acceso a la sesión? Los artículos de la lista de deseos se almacenan en la base de datos y tienen una referencia a la identificación del cliente. .. O tal vez me estoy perdiendo algo
Marius
Porque no tengo la identificación del cliente.
Ryre
2
Ok ... parece justo ... perdón por mi ignorancia :)
Marius
¡Sin preocupaciones! Mi pregunta fue breve, por lo que probablemente sea necesaria una pequeña explicación.
Ryre
Como leí en la documentación de Magento REST API, no hay acceso a la sesión a través de REST. ¿Pensaste en usar oAuth?
Anna Völkl

Respuestas:

5

Como se mencionó en mis comentarios anteriores, recomendaría proporcionar un inicio de sesión de usuario con oAuth para obtener acceso al ID de cliente. Para responder a su pregunta: No, no es posible acceder a la sesión del cliente.

El flujo puede ser el siguiente:

  1. El usuario accede a un sitio web de terceros donde desea proporcionar la funcionalidad de la lista de deseos
  2. Funcionalidad de lista de deseos / lista de deseos de solicitud del usuario (agregando un nuevo elemento a la lista de deseos, mostrando su lista de deseos, etc.)
  3. El usuario inicia sesión a través de oAuth en su tienda magento
  4. Recuperar ID de cliente de oAuth
  5. Continúe con la funcionalidad de su lista de deseos

Para la Autorización de usuario, le recomiendo que siga las secciones "Obtención de un token de solicitud no autorizada" y "Autorización de usuario" en esta página .

Anna Völkl
fuente
¡Su respuesta fue la primera en ofrecer una solución viable!
Ryre
¿Cuál es la forma aceptada de obtener ID de cliente de oAuth? No veo esa funcionalidad en ninguna parte de sus documentos.
Stepan Mazurov
Lo he resuelto. Para cualquier otra persona que tenga el mismo problema, asegúrese de que su rol de "cliente" tenga permisos para acceder a la API
Stepan Mazurov
Hola @ Anna Völkl, ¿cómo obtengo la identificación del cliente en la api REST de magento? Porque cuando paso el token del cliente en el encabezado necesito una identificación del cliente, que token del cliente pertenece a ese token del cliente específico en magento 2
Aditya Shah
Mi API de productos devuelve productos, si lo intento con el cliente obtengo un error, mi url: 192.168.1.65/anusthana/api/rest/customers error: snag.gy/0jbhTr.jpg me pueden ayudar @Anna
zus
6

No.

La sesión del cliente está vinculada a la cookie de interfaz que tiene el cliente de navegación. Si usa sesiones basadas en archivos, estas se almacenarían en var / sessions /; si usa la base de datos como almacenamiento de sesión, se almacenaría en core_session.

En cualquier caso, para poder acceder a él, necesitaría conocer el session_id del cliente, que por diseño solo debe estar entre el navegador y el servidor. * 1)

Un mejor enfoque, como se sugiere en los comentarios anteriores, sería averiguar qué información tiene disponible para el cliente (customer_id, dirección de correo electrónico) y luego acceder a la lista de deseos a través de eso.

Otra cosa a tener en cuenta es que la sesión que ha establecido para comunicarse con la API está separada de la sesión que tiene un cliente.

En general, creo que obtendría una respuesta más procesable si publicara lo que está tratando de lograr con la lista de deseos que indica sus limitaciones actuales.

* 1) es posible que pueda leer la sesión de cookies utilizada actualmente y guardarla en la base de datos para su posterior procesamiento, pero nuevamente necesitará otra información para vincular esto con la lógica que está tratando de implementar, por lo que no Vea cualquier uso aquí.

Kristof en Fooman
fuente
Gracias por la gran respuesta. Mi objetivo final es que los datos de acceso de los clientes a través de REST que el cliente ve al iniciar sesión en el front-end: historia, direcciones guardadas orden, etc.
Ryre
Algún contexto más ciertamente ayudaría. ¿Qué aplicación está haciendo estas solicitudes? Supongo que aquí tiene un sitio web que no es de Magento en el que desea mostrar los datos de Magento, pero esto no está del todo claro en su pregunta y podría ser algo completamente diferente. Las sugerencias de OAuth involucran acciones que el cliente necesitaría hacer. Otros enfoques incluyen compartir la sesión entre los dos sistemas (por ejemplo, eche un vistazo a las diversas integraciones de WordPress).
Kristof en Fooman
¡Tu suposición está bastante cerca! Estoy ayudando a ampliar los servicios REST básicos para una aplicación de iPhone. El front-end oauth resuelve el problema que tengo; lo siento por no hacer una pregunta más clara.
Ryre
1

Creo que lo que estás buscando es una mezcla de la API REST y OAuth de Magento. Con OAuth, el usuario de la interfaz puede iniciar sesión en el entorno de Magento y proporcionar su aplicación (tercera parte) y acceder a los datos de sus clientes, como el historial de pedidos.

Hasta donde sé, esto es lo más cerca que puede llegar a la sesión del cliente utilizando la API.

Consulte esta documentación de Magento sobre el tema y también este bonito artículo de Inchoo

Sander Mangel
fuente