Test passwordloos inloggen zonder inbox-chaos
Passwordloos inloggen ziet er eenvoudig uit in een demo. Een gebruiker voert een e-mailadres in. Er komt een magic link aan. De sessie start.
In staging wordt deze flow rommelig. Links belanden in gedeelde inboxes of oude aliassen. Dit zorgt voor ruis.
Je moet passwordless authenticatie behandelen als één volledig systeem. Je moet de JavaScript-client, de Node.js-backend, de e-mailbezorging en de sessie testen. Als je de inbox overslaat, lever je misschien een defecte flow op, zelfs als je API-tests slagen.
Veelvoorkomende fouten zijn onder andere:
- De backend stuurt twee links na een poging tot opnieuw verzenden.
- De e-mail verwijst naar de verkeerde host.
- Een oude link blijft langer werken dan de bedoeling is.
- De frontend markeert een gebruiker als ingelogd voordat de cookie is ingesteld.
Gebruik voor elke testrun een geïsoleerde inbox. Dit voorkomt dat testgegevens in de mailboxen van het team terechtkomen. Gebruik disposable e-mailservices voor staging om runs gescheiden te houden.
Isolatie maakt debuggen eenvoudig. Als een test faalt, zie je één inbox en één gebruikersreis. Je moet precies weten welk bericht bij welke build hoort.
Een goede test controleert deze stappen in de juiste volgorde:
- Het inlogverzoek slaagt zonder te onthullen of een account bestaat.
- Er komt precies één nieuwe magic link aan.
- De host van de link komt overeen met je staging-domein.
- De link start een geldige sessie.
- Het hergebruiken van dezelfde link mislukt.
- De app werkt de navigatie bij zonder handmatige refresh.
Koppel aan de Node.js-kant een correlation ID aan je logs. Gebruik deze van het verzoek tot het verzenden van de e-mail en de uiteindelijke sessie. Dit helpt je bij het vinden van bugs wanneer e-mails traag zijn of worden gedupliceerd.
Vervang niet al je tests door e-mailtests. Gebruik snelle unit tests voor token-logica en sessieregels. Gebruik het e-mailpad om te bewijzen dat de echte gebruikerservaring werkt.
Checklist voordat je live gaat:
- Eén inlogverzoek creëert slechts één actieve link.
- De nieuwste e-mail is gemakkelijk te parsen in staging.
- De link werkt op de juiste host.
- De link kan niet opnieuw worden gebruikt.
- Uitloggen en opnieuw inloggen creëert een schoon nieuw token.
