PS PrestaShop Anfänger

DataFirefly Magic Link — Passwortlose Anmeldung

Passwortlose Anmeldung per E-Mail-Link auf PrestaShop 8 und 9 installieren und konfigurieren.

Aktualisiert Modulversion 1.0.0

Überblick

DataFirefly Magic Link fügt Ihrer PrestaShop-8- oder -9-Boutique die passwortlose Anmeldung hinzu. Der Kunde gibt seine E-Mail-Adresse auf der Anmeldeseite ein, erhält einen sicheren Einmal-Link, klickt, bestätigt und ist angemeldet. Das klassische Formular mit Benutzername + Passwort bleibt verfügbar: Der Magic Link ergänzt es, ersetzt es aber nicht.

Das Modul ist vollständig eigenständig: keine Composer-Abhängigkeit, kein externer Dienst, kein CDN-Aufruf. Alles läuft über das native E-Mail-System von PrestaShop.

Voraussetzungen

  • PrestaShop 8.0 bis 9.x
  • PHP 8.1 oder höher
  • MySQL 5.7+ oder MariaDB 10.3+
  • Funktionierender E-Mail-Versand (wenn Ihre Bestellbestätigungen ankommen, passt alles)

Installation

  1. Öffnen Sie im Backoffice Module > Modul-Manager.
  2. Klicken Sie auf Modul hochladen und wählen Sie die Datei dfmagiclink.zip.
  3. PrestaShop installiert das Modul, erstellt die Tabelle ps_dfmagiclink_token und registriert die Hooks automatisch.
  4. Klicken Sie auf Konfigurieren, um die Einstellungsseite zu öffnen.

Direkt nach der Installation erscheint das Magic-Link-Formular unter dem Standardanmeldeformular Ihres Shops, mit den Standardeinstellungen (Links 15 Minuten gültig, Rate-Limiting aktiv).

Konfiguration

Alle Einstellungen finden Sie unter Module > Modul-Manager > DataFirefly Magic Link > Konfigurieren.

Hauptschalter. Bei Nein verschwindet das Formular aus dem Frontend und bestehende Links funktionieren nicht mehr (mit einer klaren Meldung für den Kunden).

Auf der Anmeldeseite anzeigen

Steuert die Einbindung des Formulars unter der Standardanmeldung. Sie können die Anzeige deaktivieren und das Modul aktiv lassen, etwa wenn Sie das Formular über Ihr Theme an anderer Stelle einbinden.

Zeitraum, in dem ein Link nach der Ausstellung nutzbar bleibt. Standard: 15 Minuten. Minimum 1, Maximum 1440 (24 Stunden). Wir empfehlen 15 bis 60 Minuten: lang genug für die Zustellung, kurz genug zur Begrenzung des Zeitfensters.

Max. Anfragen pro IP / Stunde

Obergrenze für Link-Anfragen von einer IP-Adresse innerhalb einer gleitenden Stunde. Standard: 5. Schützt vor automatisiertem Missbrauch.

Max. Anfragen pro E-Mail / Stunde

Obergrenze pro Kundenkonto innerhalb einer gleitenden Stunde. Standard: 3. Darüber werden Anfragen stillschweigend ignoriert (die Bildschirmmeldung bleibt generisch, damit der Kontostatus nicht preisgegeben wird).

Denken Sie beim Testen daran, diese Grenzen vorübergehend zu erhöhen oder die Tabelle ps_dfmagiclink_token zu leeren — sonst erreichen Sie schnell das Limit von 3 pro Stunde auf Ihrem eigenen Konto.

Weiterleitung nach der Anmeldung

Seite, auf der der Kunde nach erfolgreicher Anmeldung landet: Mein Konto (Standard), Bestellverlauf oder Startseite.

Statistiken und Bereinigung

Drei Zähler oben auf der Konfigurationsseite: aktive Tokens, Anmeldungen der letzten 24 Stunden, ausgestellte Links in 24 Stunden. Die Schaltfläche Abgelaufene Tokens bereinigen entfernt veraltete Tokens und verbrauchte Tokens, die älter als 24 Stunden sind.

Kundenablauf

  1. Der Kunde öffnet die Anmeldeseite und gibt seine E-Mail im Block „Anmeldung ohne Passwort“ ein.
  2. Das Modul prüft das Konto, generiert einen 256-Bit-Token, speichert dessen SHA-256-Hash und versendet die E-Mail. Die Bildschirmantwort ist bewusst generisch („Falls ein Konto für diese E-Mail existiert…“) zur Verhinderung von Konto-Enumeration.
  3. Der Kunde klickt auf den Button in der E-Mail und landet auf einer eigenständigen Bestätigungsseite, die ihn mit Vornamen begrüßt.
  4. Er klickt auf „Jetzt anmelden“: Der Token wird verbraucht, die PrestaShop-Sitzung öffnet sich, die nativen Authentifizierungs-Hooks werden ausgelöst, dann erfolgt die Weiterleitung zur konfigurierten Seite.

Warum eine Bestätigungsseite? Outlook Safe Links, Gmail und Unternehmens-Antivirus besuchen automatisch die Links empfangener E-Mails. Ohne diesen Schritt würden diese Scanner den Link vor dem Kunden verbrauchen. Der Token wird nur beim echten Klick verbraucht (POST-Anfrage), nie beim bloßen Besuch (GET). Dasselbe Muster nutzen Slack, Notion und Vercel.

E-Mails

Die Vorlagen liegen in modules/dfmagiclink/mails/<Sprache>/ (fr, en, es, de), als HTML (magiclink.html) und Klartext (magiclink.txt). Die E-Mail-Sprache folgt automatisch der Sprache des Kundenkontos.

Verfügbare Variablen: {firstname}, {lastname}, {email}, {magic_link}, {ttl}, {shop_name}, {ip}.

Zum Anpassen einer Vorlage kopieren Sie sie in den mails-Ordner Ihres Themes (themes/ihr-theme/modules/dfmagiclink/mails/), damit Ihre Änderungen Modul-Updates überstehen.

Sicherheit

  • 256-Bit-Tokens, generiert mit random_bytes(), URL-sicher base64-kodiert.
  • SHA-256-Hash in der Datenbank: Der Rohtoken existiert nur in der E-Mail. Ein Tabellenleck liefert keinen nutzbaren Link.
  • Strenge Einmalnutzung: Der Token wird vor dem Öffnen der Sitzung als verbraucht markiert.
  • Anti-Enumeration: identische Antwort, ob das Konto existiert oder nicht.
  • Doppeltes Rate-Limiting pro IP und pro Konto.
  • CSRF: Die AJAX-Anfrage ist durch den nativen PrestaShop-Sicherheitstoken geschützt.
  • noindex: Jede Modulseite trägt den Header X-Robots-Tag: noindex, nofollow, noarchive.

Fehlerbehebung

Die E-Mail kommt nicht an

Prüfen Sie der Reihe nach: den Spam-Ordner des Kunden (SPF/DKIM Ihrer Domain), das Rate-Limit (Zähler „ausgestellte Links“ in der Konfiguration) und den Aktivstatus des Kundenkontos. Die serverseitige Ausstellung bestätigen Sie in der Tabelle ps_dfmagiclink_token: Nach jeder Anfrage muss eine Zeile mit used_at auf NULL erscheinen.

Der Link hat seine Gültigkeitsdauer überschritten oder wurde bereits genutzt. Der Kunde kann einfach über die Anmeldeseite einen neuen Link anfordern.

Das Formular erscheint nicht auf der Anmeldeseite

Prüfen Sie, dass „Auf der Anmeldeseite anzeigen“ aktiviert ist, und leeren Sie den Cache (Erweiterte Einstellungen > Leistung > Cache leeren). Prüfen Sie zudem, dass Ihr Theme den Hook displayCustomerLoginFormAfter ausführt — das tun Classic, Hummingbird und praktisch alle Marktplatz-Themes.

Deinstallation

Die Deinstallation entfernt die Tabelle ps_dfmagiclink_token und alle Konfigurationswerte. Kein Kundenkonto wird verändert, kein Passwort angerührt. Die Standardanmeldung funktioniert normal weiter.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren