Auto Login für einen User

Hallo,

für einen einzigen Benutzer in unserem Shop haben wir die Anforderung erhalten, dass er durch den Aufruf eines zu definierenden URL Pfades (z.B. http://unser-shop.com/autologinpfad) und unter Angabe eines speziellen Request Parameters automatisch eingeloggt werden soll. Das Passwort des Benutzers soll dabei aber nicht mitgegeben werden müssen!

Wir planen hierfür ein neues Plugin zu schreiben, wobei dessen Controller Action auf den Pfad (also ‚/autologinpfad‘) reagiert. Nun meine Frage: Welche Möglichkeiten haben wir, um nach Prüfung aller Erfordernisse den Benutzer im Controller einzuloggen und ihn sodann auf dessen Account Seite zu redirecten?

Möglich wäre z.B. ein Redirect auf die loginAction des Account Controllers, jedoch müssen wir dafür das Passwort irgendwo hinterlegen.

Danke für Eure Hinweise!

Hi ricochet,

im Backend Kundenmodul kann man für einen Kunden eine Bestellung durchführen. Dann landet man als Kunde eingeloggt im Frontend.

Schau’ dir doch am besten an, wie es dort realisiert wurde: shopware/Customer.php at 5.3 · shopware/shopware · GitHub

Viele Grüße

1 „Gefällt mir“

Hallo simkli,

das schaut vielversprechend aus, vielen Dank für den Hinweis! Werde ich Morgen gleich ausprobieren.

Beste Grüsse
ricochet

Wir planen hierfür ein neues Plugin zu schreiben

Und das für einen Benutzer :-) 

Ich habe bereits ein AutoLogin Plugin programmiert (ist auch im Store), aber nur für einen Benutzer ist etwas ungewöhnlich. Egal welchen Weg man geht, du musst vom Benutzer einen eindeutigen Parameter übergeben, und das ganze auch so, dass ein Mißbrauch ebenfalls ausgeschlossen wird - also, nicht dass sich dann ein Fremder einfach einloggen kann. Das wird nicht einfach!

Wie der Login bei SW funktioniert, ist ja aus den Dateien ersichtlich. Siehe Frontend Controller Auccount -> loginAction(). Und das müsst ihr dann nachbilden :slight_smile: Also einen eigenen Controller „autologinpfad” bauen, den Login nachbauen und Redirect auf die zuletzt besuchte Seite oder Kundenkonto.

 

1 „Gefällt mir“

Hallo IFF,

danke für Deine Gedanken. Klar, Missbrauch muss unterbunden werden. Ich denke für den Check auch an die Überprüfung des HTTP_ORIGIN u.ä.

Gruss
ricochet

Hast du das hinbekommen? Ich bräuchte gerade genau das gleiche. Vielleicht darf ich dir eine Frage stellen?

Hallo Andreas,

ja das läuft mittlerweile. Schau Dir mal den Link von simkli weiter oben an: Wir loggen den Benutzer anhand der im Request übergebenen E-Mail Adresse und Passwort genau so ein. Ist also keine Hexerei.