Alles wat u wilt weten voordat u installeert.
Een gedetailleerde blik op hoe Aanmelden zonder Wachtwoord (Magic Link) PrestaShop 8 & 9 werkt, waarom we het zo gebouwd hebben en de gedachte achter de bovenstaande functies.
Waarom het wachtwoord vervangen?
Een aanzienlijk deel van de winkelwagens die bij het inloggen worden verlaten, sneuvelt op een vergeten wachtwoord. En elke aanvraag om het opnieuw in te stellen levert een e-mail op, een wachttijd en soms een supportticket. De magic link haalt die wrijving weg: de klant vult zijn e-mailadres in, krijgt een link, klikt en is ingelogd. Eenvoudiger voor hem, minder werk voor u, en een sneller besteltraject.
Hoe de module werkt
Onder het gewone inlogformulier staat een tweede formulier dat inloggen per e-mail aanbiedt. De klant vult zijn adres in, een AJAX-aanvraag maakt een willekeurig token van 256 bits aan, bewaart daarvan alleen de SHA-256-hash in de database, en verstuurt een e-mail met het ruwe token erin. De klant klikt op de link in de e-mail, komt op een bevestigingspagina, bevestigt met één klik, en is in de PrestaShop-sessie aangemeld net als bij een gewone aanmelding. De native authenticatiehooks worden daarbij afgevuurd, dus al uw andere modules blijven gewoon werken.
Beveiliging die op productie is berekend
Het ruwe token bestaat alleen in de verstuurde e-mail. In de database staat uitsluitend de SHA-256-hash, dus een lek van die tabel levert geen bruikbare link op. Elk token is één keer te gebruiken en wordt bij gebruik meteen als verbruikt gemarkeerd. De geldigheidsduur is instelbaar (standaard 15 minuten, maximaal 24 uur). Een dubbele rate limiting bewaakt het aantal aanvragen per IP-adres en per klantaccount binnen een voortschrijdend uur, met instelbare waarden. En het AJAX-antwoord is bewust algemeen gehouden, zodat een aanvaller niet kan afleiden of een account bestaat.
Het probleem met e-mailscanners, en de oplossing
Outlook met Safe Links, Gmail met zijn voorvertoning, bedrijfsantivirus en beveiligingsproxy's bezoeken automatisch elke link in een binnenkomende e-mail om die te scannen. Zou de module het token al bij de eerste GET verbruiken, dan zouden die scanners de link opbranden voordat de klant überhaupt kan klikken. De module werkt daarom in twee stappen: de GET toont een zelfstandige bevestigingspagina met een knop, en pas de POST die op de echte klik volgt verbruikt het token. Scanners versturen geen willekeurige formulieren en kunnen de link dus niet opbranden. Dat is het patroon dat Slack, Notion, Vercel en Auth0 voor hun magic links gebruiken.
Een bevestigingspagina die overal werkt
De pagina waarop de klant na het klikken belandt, wordt weergegeven als een zelfstandig HTML5-document, los van het PrestaShop-thema. Dat garandeert een correcte weergave op elk thema, of dat nu Classic, Hummingbird, Warehouse of een eigen ontwerp is. De pagina blijft sober en gecentreerd, met de naam van de winkel bovenaan, een persoonlijke welkomsttitel, een blauwe bevestigingsknop en een korte veiligheidsmelding. Geen externe CSS, geen JavaScript-framework, en dus een directe weergave.
Automatisch meertalig
De module levert e-mailsjablonen in HTML en platte tekst, vertaald in vier talen: Frans, Engels, Spaans en Duits. De taal van de verstuurde e-mail volgt automatisch de taal van het klantaccount. Ook de teksten in de interface (het aanvraagformulier, de bevestigingspagina, de foutmeldingen) lopen via het gewone vertaalsysteem van PrestaShop en zijn dus vanuit de backoffice aan te passen. Nederlands zit niet in de meegeleverde vertalingen: voor een Nederlandstalige winkel vult u die teksten zelf in.
Configuratie en statistieken in de backoffice
Een configuratiescherm dat u opent vanuit de modulebeheerder bevat alle instellingen: aan- of uitzetten, het formulier al dan niet tonen op de inlogpagina, de geldigheidsduur, de grenzen voor de rate limiting en de doorverwijzing na het inloggen. Drie tellers tonen in real time de actieve tokens, de aanmeldingen van de afgelopen 24 uur en de verstuurde links. Met een knop ruimt u verlopen tokens handmatig op. Het opslaan verloopt via een patroon met POST, redirect en daarna GET, om valse alarmen bij phishingfilters zoals Google Safe Browsing te voorkomen.
Er zijn nog geen beoordelingen.