Hallo zusammen, ich bin in der Konzeptionsphase einer Shoplösung auf Shopware-Basis beteiligt. Dabei hat sich die Anforderung aufgetan, Shop-Kunden an einem externen System zu authentifizieren. Wenn möglich sollen die Kundendaten nicht in die Shopware-Installation importiert werden, sondern direkt aus der externen Datenbank geladen werden. Für Backend-User scheint es ja zumindest ein Authentifikations-Plugin für AD zu geben. Die Frage ist, ob es da eine Infrastruktur für Frontend-User (Customers) gibt. Kann man das irgendwie mit einem Plugin o.ä. realisieren, in dem man beispielsweise eine neue Authentifikations-Klasse registriert? Ich habe im Quellcode nichts dergleichen gefunden, aber um weitere Hinweis wäre ich sehr dankbar. Viele Grüße, Manuel
was die reine authentifizierung angeht, da kann ich mir ein plugin vorstellen welches das regelt. allerdings müsste in diesem prozess der kunde auch in shopware angelegt bzw. abgeglichen werden, ansonsten funktioniert der ganze bestellprozess nicht richtig. es gibt ja kein user-object an sich, sondern an unzähligen stellen wird erwartet, daß zu Shopware()->Session()->sUserId (oder so) auch ein datenbankeintrag existiert. email-adresse wäre dann der primärschlüssel.
Wenn ich das richtig sehe, gibt es aber keinen speziellen Hook oder Event, was vor dem Login greif, an das ich mich hängen könnte, oder? Die Authentifikation wird doch immer noch in der Klasse „engine/core/class/sAdmin.php“ abgewickelt? Das heißt, ein solches Plugin müsste ein eigenes Login implementieren (Controller, Login-Forumlar, …), welches in diesem Zuge die Authentifikation mit dem externen System regelt und dabei auch alle Customer-Daten in der Shopware-Datenbank aktualisiert…?
Kommando zurück - Event “Shopware_Modules_Admin_Login_Start” scheint ein guter Startpunkt zus sein. Wer lesen kann und so
$this->subscribeEvent(‚sAdmin::sLogin::before‘, ‚onLogin‘); könnte auch hilfreich sein.