Gibt es Unterstützung für Kundensitzungen über die REST-API von Magento?

9

Ich arbeite daran, die Funktionalität der Wunschliste auf Magentos REST-API zu erweitern. Es wäre schön, auf die Sitzung des Kunden zuzugreifen. Hat Magento Unterstützung für den Zugriff auf die Kundensitzung über REST?

Ryre
quelle
Warum benötigen Sie Sitzungszugriff? Die Artikel auf der Wunschliste werden in der Datenbank gespeichert und enthalten einen Verweis auf die Kunden-ID. ..Oder vielleicht fehlt mir etwas
Marius
Weil ich die Kundennummer nicht habe.
Ryre
2
Ok ... Nähte fair ... Entschuldigung für meine Unwissenheit :)
Marius
Keine Bange! Meine Frage war kurz, daher ist wahrscheinlich eine kleine Erklärung angebracht.
Ryre
Wie ich in der Magento REST API-Dokumentation gelesen habe, gibt es keinen Zugriff auf die Sitzung über REST. Haben Sie über die Verwendung von oAuth nachgedacht?
Anna Völkl

Antworten:

5

Wie in meinen obigen Kommentaren erwähnt, würde ich empfehlen, ein Benutzer-Login mit oAuth bereitzustellen, um Zugriff auf die Kunden-ID zu erhalten. Um Ihre Frage zu beantworten: Nein, es ist nicht möglich, auf die Kundensitzung zuzugreifen.

Der Fluss kann wie folgt sein:

  1. Der Benutzer greift auf eine Website eines Drittanbieters zu, auf der Sie die Wunschliste bereitstellen möchten
  2. Benutzerwunschliste / Wunschliste-Funktionalität (durch Hinzufügen eines neuen Elements zur Wunschliste, Anzeigen seiner Wunschliste usw.)
  3. Der Benutzer meldet sich über oAuth in Ihrem Magento-Shop an
  4. Kunden-ID von oAuth abrufen
  5. Fahren Sie mit Ihrer Wunschliste fort

Für die Benutzerautorisierung empfehle ich, die Abschnitte "Abrufen eines nicht autorisierten Anforderungstokens" und "Benutzerautorisierung" auf dieser Seite zu befolgen .

Anna Völkl
quelle
Ihre Antwort war die erste, die eine praktikable Lösung anbot!
Ryre
Wie wird die Kunden-ID von oAuth akzeptiert? Ich sehe solche Funktionen nirgendwo in ihren Dokumenten.
Stepan Mazurov
Ich habe es herausgefunden. Stellen Sie für alle anderen, die das gleiche Problem haben, sicher, dass Ihre "Kunden" -Rolle die Berechtigung hat, auf die API zuzugreifen
Stepan Mazurov
Hallo @Anna Völkl, wie bekomme ich Kunden-ID in magento REST api? Denn wenn ich das Kunden-Token im Header übergebe, brauche ich die Kunden-ID, welches Kunden-Token zu diesem bestimmten Kunden-Token in Magento 2 gehört
Aditya Shah
Meine Produkt-API gibt Produkte zurück. Wenn ich es mit einem Kunden versuche, wird eine Fehlermeldung angezeigt. Meine URL: 192.168.1.65/anusthana/api/rest/customers Fehler: snag.gy/0jbhTr.jpg Kannst du mir helfen? @Anna
zus
6

Nein.

Die Kundensitzung ist an das Frontend-Cookie des Browsing-Kunden gebunden. Wenn Sie dateibasierte Sitzungen verwenden, werden diese unter var / session / - gespeichert. Wenn Sie die Datenbank als Sitzungsspeicher verwenden, wird diese in core_session gespeichert.

In jedem Fall müssten Sie die Sitzungs-ID des Kunden kennen, um darauf zugreifen zu können. Diese sollte sich standardmäßig nur zwischen Browser und Server befinden. * 1)

Ein besserer Ansatz, wie in den obigen Kommentaren vorgeschlagen, wäre, herauszufinden, welche Informationen für den Kunden verfügbar sind (Kunden-ID, E-Mail-Adresse) und dann über diese auf die Wunschliste zuzugreifen.

Beachten Sie außerdem, dass die Sitzung, die Sie für die Kommunikation mit der API eingerichtet haben, von der Sitzung eines Kunden getrennt ist.

Insgesamt denke ich, dass Sie eine umsetzbarere Antwort erhalten würden, wenn Sie veröffentlichen würden, was Sie mit der Wunschliste erreichen möchten, in der Ihre aktuellen Einschränkungen angegeben sind.

* 1) Möglicherweise können Sie die aktuell verwendete Cookie-Sitzung lesen und zur weiteren Verarbeitung in der Datenbank speichern. Sie benötigen jedoch erneut einige andere Informationen, um diese mit der Logik zu verknüpfen, die Sie derzeit implementieren möchten Hier finden Sie eine Verwendung dafür.

Kristof bei Fooman
quelle
danke für die tolle antwort. Mein Endziel ist es, über REST auf Kundendaten zuzugreifen, die der Kunde beim Anmelden am Frontend sieht:
Bestellverlauf
Ein bisschen mehr Kontext würde sicherlich helfen. Welche Anwendung stellt diese Anfragen? Ich vermute hier, dass Sie eine Nicht-Magento-Website haben, auf der Sie Magento-Daten anzeigen möchten, aber dies ist aus Ihrer Frage nicht ganz klar und könnte etwas ganz anderes sein. Die OAuth-Vorschläge beinhalten Maßnahmen, die der Kunde ausführen müsste. Andere Ansätze umfassen das Teilen der Sitzung zwischen den beiden Systemen (sehen Sie sich beispielsweise die verschiedenen WordPress-Integrationen an).
Kristof bei Fooman
Ihre Vermutung ist ziemlich nah! Ich helfe bei der Erweiterung der grundlegenden REST-Dienste für eine iPhone-App. Das Front-End-Oauth löst das Problem, das ich habe. Es tut mir leid, dass ich keine klarere Frage gestellt habe.
Ryre
1

Ich denke, was Sie suchen, ist eine Mischung aus der REST-API und Magentos OAuth. Mit OAuth kann sich der Frontend-Benutzer in der Magento-Umgebung anmelden und Ihrer (Drittanbieter-) Anwendung Zugriff auf seine Kundendaten wie die Bestellhistorie gewähren.

Soweit ich weiß, ist dies so nah wie möglich an der Kundensitzung über die API.

Lesen Sie diese Magento-Dokumentation zu diesem Thema und auch diesen schönen Artikel von Inchoo

Sander Mangel
quelle