Het wachtwoord is een blok aan het been van de e-commerceconversie geworden
Op de PrestaShop-webshops die wij instrumenteren, haakt ongeveer 14 % van de geïdentificeerde bezoekers (bestaande klanten) af op het moment van inloggen. Niet ervoor, maar precies op het moment dat ze hun wachtwoord moeten intikken. En van de 86 % die er wel in slaagt, gaat 28 % via wachtwoord vergeten, wat een omweg van 2 tot 4 minuten aan het kooptraject toevoegt. Opgeteld is dat op een mid-market webshop 8 tot 18 % omzet die verdwijnt door authenticatiefrictie.
Het wachtwoord sleept ook een verborgen kostenpost mee: 30 tot 50 % van de supporttickets in e-commerce gaat over een account (reset, blokkering na pogingen, onvindbaar account). Tegen 5 tot 8 € per behandeld ticket, op 2 000 tickets per maand, is dat 35 tot 80 K€ per jaar aan operationele kosten. Nog los van de psychologische kosten: een klant die door een vergeten wachtwoord uit de checkout wordt gegooid, wint u moeilijker terug.
Het alternatief bestaat al lang en bereikt in 2026 zijn volwassenheid: inloggen zonder wachtwoord via een magische link (magic link) of een passkey (WebAuthn). Het principe is hetzelfde als waarmee Slack, Notion en Linear het wachtwoord als standaard hebben vervangen: er wordt een unieke link per e-mail verstuurd, de klik authenticeert. Geen wachtwoord meer om te onthouden, geen captcha, geen blokkering.
Hoe een magic link technisch werkt
De volledige flow in vijf stappen:
- De gebruiker vult zijn e-mailadres in op het inlogformulier.
- De server genereert een cryptografisch token (typisch 32 willekeurige bytes, base64url-gecodeerd) met een beperkte levensduur (standaard 15 minuten).
- Het token wordt in de database opgeslagen, gekoppeld aan het e-mailadres, als hash (nooit in klare tekst) en met een vervaldatum.
- Er vertrekt een e-mail met een link van de vorm
https://webshop.nl/login/magic?token=abc... - Bij de klik valideert de server het token, opent de sessie en maakt het token ongeldig (eenmalig gebruik).
Vier cryptografische eigenschappen die u moet respecteren:
- Cryptografisch willekeurig token: gegenereerd met
random_bytes()in PHP, nooit metmt_rand()of een voorspelbare UUID. - Hash in de database: u slaat het token niet in klare tekst op, maar zijn SHA-256 (zoals bij een gehasht wachtwoord). Dat beschermt de database bij een lek.
- Single-use: een gevalideerd token wordt onmiddellijk ongeldig. Geen dubbele activering mogelijk.
- Time-bound: standaard 15 minuten geldigheid. Daarna is het token dood en vraagt de gebruiker een nieuwe link.
De DfMagicLink-module voor PrestaShop implementeert die vier garanties standaard, met daarbovenop een bescherming tegen accountenumeratie (identiek antwoord of het e-mailadres nu bestaat of niet, om de klantenbasis niet aan een aanvaller prijs te geven) en rate limiting per IP.
Magic link versus passkey (WebAuthn): twee complementaire technologieën
Magic link en passkey zijn geen concurrenten maar aanvullingen, elk met een eigen toepassing:
Magic link: e-mailgebaseerd, universeel, lage frictie
- Compatibel met alle apparaten en alle browsers.
- Vraagt geen enkele voorafgaande registratie: een e-mailadres volstaat.
- Afhankelijk van de e-maildeliverability (zie transactionele e-mail en DMARC/BIMI).
- Resterende frictie: de mailbox openen, klikken.
Passkey: biometrie, onmiddellijk, gebonden aan het apparaat
- De gebruiker authenticeert zich met biometrie (Touch ID, Face ID, Android-vingerafdruk) of de pincode van het apparaat.
- Geen e-mailomweg, onmiddellijk.
- Vereist een voorafgaande registratie van de passkey op elk apparaat.
- W3C-standaard WebAuthn, sinds 2023 door alle moderne browsers ondersteund.
Het hybride patroon van 2026
Het patroon dat vandaag werkt in e-commerce:
- Eerste login of nieuw apparaat: magic link (universeel, geen voorafgaande registratie).
- Na de eerste geslaagde login stelt u voor een passkey op het apparaat te registreren voor de volgende keren (log de volgende keer in met één klik).
- Klassiek wachtwoord als optie voor gebruikers die dat willen, of voor het adminaccount van de back-office (waar 2FA koning blijft).
Dat patroon combineert de universaliteit van de magic link met de directheid van de passkey, zonder een bruuske gewoonteverandering op te leggen.
Gemeten effect op de conversie
Op PrestaShop-webshops die van het klassieke wachtwoord naar een magic link als eerste keuze zijn overgestapt:
- Login successful rate: van 73 % naar 94 % (winst: +21 punten). De resterende 6 % mislukkingen zijn tikfouten in het e-mailadres of deliverabilityproblemen.
- Gemiddelde inlogtijd: van 47 s naar 22 s (e-mailklik inbegrepen).
- Accountgerelateerde supporttickets: gemiddeld −68 % over 3 maanden.
- Checkoutconversie van geïdentificeerde klanten: +4 tot +8 punten.
Op een webshop met 200 bestellingen per maand en een gemiddelde orderwaarde van 80 € betekent +6 punten checkoutconversie op 35 % geïdentificeerde klanten: +0,6 bestellingen per dag maal 80 €, oftewel +1 460 € omzet per maand. Plus de bespaarde supporttickets. Plus de waarde van een soepele ervaring.
Implementatie op PrestaShop: de architectuurkeuzes
Architectuur van de database
Een eigen tabel ps_df_magic_token met de velden:
id_token(PK auto-increment)id_customer(FKps_customer, nullable voor accountcreatie ter plekke)email(geïndexeerd)token_hash(SHA-256, geïndexeerd voor snelle validatie)expires_at(datetime)consumed_at(datetime nullable, gebruiksmarkering)ip_request,ip_consume(forensische audit)user_agent(forensische audit)
Een samengestelde index (token_hash, expires_at, consumed_at) om een binnenkomend token snel te valideren.
De PrestaShop-controller
Twee moderne (Symfony-)controllers voor PS 8/9:
MagicLinkRequestController: ontvangt het e-mailadres, genereert het token, verstuurt de e-mail. POST met rate limiting.MagicLinkConsumeController: ontvangt het token via GET, valideert, opent de sessie via$context->customer->logged = trueen$context->cookie.
Let op de klassieke valkuil: open nooit een sessie op een GET zonder verificatie wanneer de link vanuit een e-mail wordt aangeklikt. Een linkpreview (Outlook, Gmail) zou het token kunnen verbruiken. De oplossing: een expliciete klik eisen op een tussenpagina die het token via POST verstuurt, of de preview agents herkennen (User-Agent met GoogleImageProxy of Mail-Preview) en het token bij hun passage niet verbruiken.
Het e-mailsjabloon
De magic-linkmail is een transactionele e-mail met hoge prioriteit. Vier regels:
- Verzending binnen 5 seconden: daarboven begint de gebruiker zijn e-mailadres opnieuw in te tikken.
- Maximale deliverability: SPF, DKIM en DMARC uitgelijnd; geen trackingafbeeldingen die de spamscore verslechteren; korte onderwerpregel (Inloggen bij uw webshop).
- Goed zichtbare knop: geen tekstlink weggestopt in een alinea, maar een eigen CTA van 200×50 px in de merkkleur.
- Veiligheidsvermelding: hebt u dit niet aangevraagd, negeer dan dit bericht (dempt het risico op social engineering).
Een nette implementatie van de transactionele e-maildeliverability is een randvoorwaarde: een magic link die in de spam belandt, is een klant die afhaakt.
Beveiliging: de aanvallen om op te anticiperen
1. Accountenumeratie
Verschilt het antwoord naargelang het e-mailadres wel of niet in de database staat (we hebben u een link gestuurd tegenover dit e-mailadres bestaat niet), dan kan een aanvaller de klantenbasis per bruteforce in kaart brengen. De regel: identiek antwoord in beide gevallen, en alleen een e-mail versturen als het account bestaat.
2. Phishing via een nagemaakte link
Een aanvaller stuurt een e-mail die uw merk nabootst, met een valse magic link naar een phishingpagina. De bescherming: klanten sensibiliseren (vermelding in de echte e-mail: controleer dat de URL met uw domein begint), en BIMI publiceren om het merklogo in Gmail en Yahoo te tonen. Dat is in 2026 de effectiefste vertrouwenshefboom.
3. Bruteforce op tokens
Met 32 willekeurige bytes is de zoekruimte 2256, praktisch onneembaar. Maar een aanvaller kan bruteforce proberen op het validatie-endpoint. De bescherming: rate limiting per IP (maximaal 10 pogingen per minuut) en logging van ongeldige pogingen.
4. Sessiediefstal via onderschepte e-mail
Is de mailbox van de klant gecompromitteerd, dan ontvangt de aanvaller de magic links. Dat is het belangrijkste restrisico van de magic link: hij verlegt de beveiliging van het webshopaccount naar de beveiliging van de mailbox. De bescherming: korte levensduur (15 min), ongeldig maken bij de login, en optionele 2FA voor accounts met een hoog belang (terugkerende bestellingen, B2B-accounts).
5. Replay-aanval
Een aanvaller onderschept een magic link en speelt hem opnieuw af. Bescherming: single-use afgedwongen in de database (consumed_at niet NULL blokkeert de validatie).
Bijzondere gevallen om te behandelen
Accountcreatie bij de eerste login
Vult de bezoeker een onbekend e-mailadres in, dan zijn er twee opties: weigeren (dit e-mailadres heeft geen account) of ter plekke aanmaken. Ter plekke aanmaken is gebruiksvriendelijk (nul registratieformulieren) maar vraagt een latere aanvulling (naam, bezorgadres) bij de eerste checkout. Het aanbevolen patroon voor PrestaShop: het account ter plekke aanmaken met een status incomplete, en het aanvullen op het moment van de checkout, die toch al adres en telefoonnummer vraagt.
Magic link plus terugwinnen van verlaten winkelwagens
Een krachtige combinatie: u stuurt de klant een winkelwagenmail die zowel het overzicht van de winkelwagen als een magic link bevat om de aankoop zonder login te hervatten. Gemeten conversie op verlaten winkelwagens: ×1,6 tegenover een klassieke e-mail met standaardlogin. Dat is wat de modules DfSaveCart en DfMagicLink combineren wanneer u ze samen uitrolt.
B2B-account met meerdere gebruikers
Voor B2B-webshops met zakelijke accounts en meerdere gebruikers blijft de magic link geldig: elke medewerker ontvangt de link op zijn zakelijke e-mailadres. Maar u voegt een auditlog toe: wie heeft zich wanneer aangemeld, vanaf welk IP. Dat vergemakkelijkt interne controles, bijvoorbeeld wie welke bestelling heeft geplaatst.
Admin- en back-officeaccounts
Voor de PrestaShop-back-office blijft de magic link verleidelijk, maar 2FA met TOTP (Google Authenticator, Authy) of een directe passkey verdienen de voorkeur. Een gecompromitteerde mailbox die toegang geeft tot de admin van uw webshop, is game over. De regel: magic link in de front-office, sterke 2FA in de back-office.
Compatibiliteit met PrestaShop 8 en 9
Op PrestaShop 8 (Symfony 4) en 9 (Symfony 6) gebruikt de implementatie:
- Moderne Symfony-routes via
config/routes.ymlof PHP 8-attributen. - Native PrestaShop-sessies via
$context->cookieplusCustomer::login(). - Hooks om aan te sluiten op de native inlogformulieren (
displayCustomerLoginFormAfter). - Meertaligheid via XLIFF (FR, EN, ES, DE) voor de e-mails en foutmeldingen.
- Multishop: tokens afgebakend per
id_shop, zodat één link geen cross-shoplogin toelaat.
De DfMagicLink-module dekt die compatibiliteit native en sluit aan op het native PrestaShop-sessiesysteem zonder het authenticatiesysteem te forken.
Veelgestelde vragen
Moet het wachtwoord volledig verdwijnen?
Nee, en dat zou zelfs contraproductief zijn. Sommige gebruikers houden uit gewoonte aan het wachtwoord vast. Het aanbevolen patroon: magic link als eerste voorstel (95 % van de gevallen), wachtwoord als optie (liever met een wachtwoord inloggen). Geen druk, geen leerfrictie.
Legt de AVG beperkingen op aan magic links?
Niet rechtstreeks, maar de auditsporen (IP, user agent, datums) zijn persoonsgegevens die onder de AVG vallen. Aanbevolen bewaartermijn: 1 jaar voor verbruikte tokens (voldoende voor forensische audit), automatische opschoning van verlopen en niet-verbruikte tokens. Het recht op vergetelheid moet die sporen eveneens wissen, tenzij ze nodig zijn voor een lopend onderzoek.
Wat gebeurt er als het e-mailadres van de klant is opgeheven?
De magic link is onbezorgbaar, de klant zit vast. Voor dat geval houdt u een begeleide herstelprocedure aan: contactformulier, identiteitscontrole via andere kanalen (telefoonnummer, laatste aankoop), daarna handmatige wijziging van het e-mailadres door de support. Het is zeldzaam (1 % van de gevallen) maar moet gedocumenteerd zijn.
Werkt de magic link in een mobiele app?
Ja, met deep links of universal links (iOS) en app links (Android). De e-maillink opent rechtstreeks de app als die is geïnstalleerd, met een automatische sessie. PrestaShop heeft geen native app, maar voor webshops met een PWA of hybride app is die integratie technisch standaard.
Hoelang duurt de integratie van een magic-linksysteem?
Met een kant-en-klare module zoals DfMagicLink is het typisch 30 minuten installatie plus 1 tot 2 uur personalisatie (e-mailsjabloon in de merkkleuren, veiligheidsvermelding, vertaling van de labels). In maatwerkontwikkeling rekent u 3 tot 5 dagen om productiekwaliteit te halen (beveiliging, deliverability, tests).
Samengevat
De magic link is geen UX-speeltje. Het is het wegnemen van de meest meetbare rem op de checkout in 2026, met een direct effect van +4 tot +8 punten conversie bij geïdentificeerde klanten en −60 % accountgerelateerde supporttickets. Gecombineerd met passkeys voor terugkerende gebruikers levert hij een inlogervaring die eindelijk kan wedijveren met Amazon, Google Pay en de marktleiders.
Voor een nette implementatie op PrestaShop dekt de DfMagicLink-module de vijf essentiële cryptografische eigenschappen (willekeurig token, hash in de database, single-use, time-bound, anti-enumeratie) en sluit hij aan op het native PrestaShop-sessiesysteem. Voor maximaal rendement combineert u hem met de winkelwagenopslag via magische link, die dezelfde infrastructuur benut voor het terugwinnen van verlaten winkelwagens.
De niet-onderhandelbare randvoorwaarde: transactionele e-maildeliverability op professioneel niveau (strikte DMARC, uitgelijnde DKIM, BIMI). Zonder dat belandt de magic link in de spam en verliest de webshop meer klanten dan hij redt. Onze PrestaShop-audit controleert die e-maillaag stelselmatig voordat we een magic-linkuitrol aanbevelen.