Esiste il supporto per le sessioni dei clienti tramite l'API REST di Magento?


9

Sto lavorando per estendere la funzionalità della lista dei desideri all'API REST di Magento. Sarebbe bello accedere alla sessione del cliente. Magento ha qualche supporto per accedere alla sessione del cliente tramite REST?


Perché hai bisogno dell'accesso alla sessione? Gli articoli della lista dei desideri sono archiviati nel db e hanno un riferimento all'ID cliente. .. O forse mi manca qualcosa
Marius

Perché non ho l'ID cliente.
Ryre,

2
Ok ... giuste cuciture ... scusate la mia ignoranza :)
Marius

Nessun problema! La mia domanda era breve, quindi probabilmente una piccola spiegazione è in ordine.
Ryre,

Come ho letto nella documentazione dell'API REST di Magento, non è possibile accedere alla sessione tramite REST. Hai pensato di usare oAuth?
Anna Völkl,

Risposte:


5

Come accennato nei miei commenti sopra, consiglierei di fornire un login utente con oAuth per ottenere l'accesso all'ID cliente. Per rispondere alla tua domanda: No, non è possibile accedere alla sessione del cliente.

Il flusso può essere il seguente:

  1. L'utente accede a un sito Web di terze parti in cui si desidera fornire la funzionalità lista desideri
  2. Funzionalità richiesta utente / lista desideri (aggiungendo un nuovo elemento alla lista desideri, mostrando la sua lista desideri ecc.)
  3. L'utente accede tramite oAuth nel tuo negozio magento
  4. Recupera ID cliente da oAuth
  5. Procedi con la funzionalità della tua lista dei desideri

Per l'autorizzazione dell'utente, ti consiglio di seguire le sezioni "Ottenere un token di richiesta non autorizzato" e "Autorizzazione dell'utente" in questa pagina .


La tua risposta è stata la prima a offrire una soluzione praticabile!
Ryre,

Qual è il modo accettato di ottenere l'ID cliente da oAuth? Non vedo tale funzionalità da nessuna parte nei loro documenti.
Stepan Mazurov,

L'ho immaginato. Per chiunque abbia lo stesso problema, assicurati che il tuo ruolo di "cliente" disponga delle autorizzazioni per accedere
all'API

Ciao @Anna Völkl, Come ottengo l'ID cliente in magento REST api? Perché quando passo token cliente in Header ho bisogno di un ID cliente a cui appartiene quel token cliente specifico in magento 2
Aditya Shah,

L'API dei miei prodotti restituisce prodotti, se provo con il cliente sto ricevendo un errore, il mio URL: 192.168.1.65/anusthana/api/rest/customers errore: snag.gy/0jbhTr.jpg mi potete aiutare @Anna
zus

6

No.

La sessione del cliente è legata al cookie frontend che ha il cliente che naviga. Se si utilizzano sessioni basate su file, queste verranno archiviate in var / sessioni / - se si utilizza il database come archivio sessioni, questo verrà archiviato in core_session.

In ogni caso per poter accedervi dovresti conoscere il session_id dal cliente che di progettazione dovrebbe essere solo tra browser e server. * 1)

Un approccio migliore, come suggerito nei commenti sopra, sarebbe quello di capire quali informazioni hai a disposizione per il cliente (customer_id, indirizzo e-mail) e quindi accedere alla lista dei desideri tramite quella.

Un'altra cosa da tenere a mente è che la sessione che è stata stabilita per comunicare all'API è separata dalla sessione che ha un cliente.

Nel complesso, penso che otterresti una risposta più pratica se pubblichi ciò che stai cercando di ottenere con la lista dei desideri che indica i tuoi attuali vincoli.

* 1) potresti essere in grado di leggere la sessione di cookie attualmente utilizzata e salvarla nel database per ulteriori elaborazioni, ma avrai di nuovo bisogno di qualche altra informazione per ricollegarla alla logica che stai attualmente cercando di implementare, quindi non vedere qualsiasi uso per questo qui.


Grazie per la magnifica risposta. Il mio obiettivo finale è quello di accedere ai dati dei clienti tramite REST che il cliente vede quando accede al front-end: cronologia ordini, indirizzi salvati, ecc.
Ryre,

Qualche altro contesto sarebbe sicuramente d'aiuto. Quale applicazione sta facendo queste richieste? La mia ipotesi qui è che tu abbia un sito web non Magento in cui desideri visualizzare i dati Magento ma questo non è del tutto chiaro dalla tua domanda e potrebbe essere qualcos'altro completamente. I suggerimenti di OAuth riguardano azioni che il cliente dovrebbe fare. Altri approcci includono la condivisione della sessione tra i due sistemi (ad esempio dare un'occhiata alle varie integrazioni di wordpress).
Kristof a Fooman,

La tua ipotesi è abbastanza vicina! Sto contribuendo ad estendere i servizi REST di base per un'app per iPhone. Il front-end oauth risolve il problema che sto avendo; scusa per non aver posto una domanda più chiara.
Ryre,

1

Penso che quello che stai cercando sia un mix di API REST e OAuth di Magento. Con OAuth l'utente frontend può accedere all'ambiente Magento fornendo la tua (terza parte) applicazione e l'accesso ai dati dei suoi clienti come la cronologia degli ordini.

Per quanto ne so questo è il più vicino possibile alla sessione del cliente utilizzando l'API.

Dai un'occhiata a questa documentazione Magento sull'argomento e anche a questo bell'articolo di Inchoo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.