PS PrestaShop Beginner

DataFirefly Magic Link: volledige gids

De wachtwoordloze aanmelding via e-maillink installeren en configureren op PrestaShop 8 en 9.

Bijgewerkt Moduleversie 1.0.0

Overzicht

DataFirefly Magic Link voegt een wachtwoordloze aanmelding toe aan uw PrestaShop 8- of 9-winkel. De klant voert zijn e-mailadres in op de inlogpagina, ontvangt een beveiligde link voor eenmalig gebruik, klikt, bevestigt, en is aangemeld. Het klassieke formulier met gebruikersnaam en wachtwoord blijft beschikbaar: de magic link komt erbij, hij vervangt het niet.

De module is volledig autonoom: geen Composer-afhankelijkheid, geen externe dienst, geen CDN-aanroep. Alles werkt met het native e-mailsysteem van PrestaShop.

Vereisten

  • PrestaShop 8.0 tot 9.x
  • PHP 8.1 of hoger
  • MySQL 5.7+ of MariaDB 10.3+
  • Werkende e-mailverzending (vertrekken uw orderbevestigingsmails, dan zit het goed)

Installatie

  1. Open in de backoffice Modules > Modulebeheer.
  2. Klik op Een module installeren en selecteer het bestand dfmagiclink.zip.
  3. PrestaShop installeert de module, maakt de tabel ps_dfmagiclink_token aan en registreert de hooks automatisch.
  4. Klik op Configureren om de instellingenpagina te openen.

Direct na de installatie verschijnt het magic-linkformulier onder het standaard inlogformulier van uw winkel, met de standaardinstellingen (links 15 minuten geldig, rate limiting ingeschakeld).

Configuratie

Alle instellingen staan in Modules > Modulebeheer > DataFirefly Magic Link > Configureren.

Hoofdschakelaar. Op Nee verdwijnt het formulier uit de front en werken de bestaande links niet meer (met een duidelijke melding voor de klant).

Tonen op de inlogpagina

Regelt de injectie van het formulier onder de standaardlogin. U kunt de weergave uitschakelen en de module toch actief houden, bijvoorbeeld als u het formulier elders via uw thema integreert.

Geldigheidsduur (minuten)

Duur waarin een link na uitgifte bruikbaar blijft. Standaard: 15 minuten. Minimaal 1, maximaal 1440 (24 uur). Wij raden aan tussen 15 en 60 minuten te blijven: lang genoeg voor de e-mailbezorging, kort genoeg om het blootstellingsvenster te beperken.

Max. aanvragen per IP / uur

Plafond aan linkaanvragen dat vanaf eenzelfde IP-adres binnen een glijdend uur wordt geaccepteerd. Standaard: 5. Beschermt tegen geautomatiseerde misbruikpogingen.

Max. aanvragen per e-mail / uur

Plafond aan aanvragen voor eenzelfde klantaccount binnen een glijdend uur. Standaard: 3. Daarboven worden de aanvragen stilzwijgend genegeerd (de getoonde melding blijft generiek om de accountstatus niet prijs te geven).

Verhoog tijdens uw tests deze plafonds tijdelijk of leeg de tabel ps_dfmagiclink_token, anders bereikt u snel de limiet van 3 aanvragen per uur op uw eigen account.

Redirect na aanmelding

Pagina waarnaar de klant na een geslaagde aanmelding wordt gestuurd: Mijn account (standaard), Bestelgeschiedenis of Homepage.

Statistieken en opschoning

Drie tellers bovenaan de configuratiepagina: actieve tokens, aanmeldingen van de laatste 24 uur, uitgegeven links over 24 uur. De knop Verlopen tokens opschonen verwijdert de verlopen tokens en de verbruikte tokens ouder dan 24 uur.

Klanttraject

  1. De klant opent de inlogpagina en voert zijn e-mail in in het blok “Aanmelden zonder wachtwoord”.
  2. De module controleert het account, genereert een token van 256 bits, slaat de SHA-256-hash ervan op en verstuurt de e-mail. Het schermantwoord is bewust generiek (“Als er een account bestaat voor dit e-mailadres…”) om accountenumeratie te verhinderen.
  3. De klant klikt op de knop in de e-mail en komt op een autonome bevestigingspagina die zijn voornaam toont.
  4. Hij klikt op “Aanmelden”: het token wordt verbruikt, de PrestaShop-sessie wordt geopend, de native authenticatiehooks worden geactiveerd, en daarna volgt de redirect naar de geconfigureerde pagina.

Waarom een bevestigingspagina? Outlook Safe Links, Gmail en bedrijfsantivirussen bezoeken automatisch de links van ontvangen e-mails. Zonder deze stap zouden die scanners de link verbruiken vóór de klant. Het token wordt pas bij de echte klik verbruikt (POST-request), nooit bij een simpel bezoek (GET). Dat is het patroon dat Slack, Notion en Vercel gebruiken.

E-mails

De sjablonen staan in modules/dfmagiclink/mails/<taal>/ (fr, en, es, de), in HTML (magiclink.html) en platte tekst (magiclink.txt). De taal van de e-mail volgt automatisch de taal van het klantaccount.

Beschikbare variabelen: {firstname}, {lastname}, {email}, {magic_link}, {ttl}, {shop_name}, {ip}.

Om een sjabloon aan te passen, kopieert u het naar de mailmap van uw thema (themes/uw-thema/modules/dfmagiclink/mails/), zodat uw wijzigingen bij module-updates behouden blijven.

Beveiliging

  • Tokens van 256 bits, gegenereerd via random_bytes(), gecodeerd in URL-veilige base64.
  • SHA-256-hash in de database: het ruwe token bestaat alleen in de e-mail. Een lek van de tabel levert geen enkele bruikbare link op.
  • Strikt eenmalig gebruik: het token wordt als verbruikt gemarkeerd vóór het openen van de sessie.
  • Anti-enumeratie: identiek antwoord, of het account nu bestaat of niet.
  • Dubbele rate limiting per IP en per account.
  • CSRF: de AJAX-aanvraag is beschermd door het native PrestaShop-beveiligingstoken.
  • noindex: alle pagina’s van de module dragen de header X-Robots-Tag: noindex, nofollow, noarchive.

Probleemoplossing

De e-mail komt niet aan

Controleer in deze volgorde: de spammap van de klant (SPF/DKIM van uw domein), de rate limit (teller “uitgegeven links” in de configuratie) en de actieve status van het klantaccount. U kunt de uitgifte aan serverzijde bevestigen via de tabel ps_dfmagiclink_token: na elke aanvraag moet er een regel met used_at op NULL verschijnen.

De link heeft zijn geldigheidsduur overschreden of is al gebruikt. De klant kan simpelweg een nieuwe link aanvragen vanaf de inlogpagina.

Het formulier verschijnt niet op de inlogpagina

Controleer of “Tonen op de inlogpagina” is ingeschakeld en leeg daarna de cache (Geavanceerde instellingen > Prestaties > Cache legen). Controleer ook of uw thema de hook displayCustomerLoginFormAfter uitvoert, wat het geval is bij de thema’s Classic en Hummingbird en vrijwel alle thema’s op de markt.

De-installatie

De de-installatie verwijdert de tabel ps_dfmagiclink_token en alle configuratiewaarden. Er wordt geen enkel klantaccount gewijzigd en geen enkel wachtwoord aangeraakt. De standaardaanmelding blijft normaal werken.

Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support