Voor een nieuwe website, waarop gebruikers inloggen, wil ik graag Two-Factor Authentication gebruiken. Nu vroeg ik me zo even af wat een gewenste werkwijze zou zijn. In dit geval wil ik een code toesturen via SMS.
Procedure
1. Gebruiker vult gegevens in en klikt op inloggen.
2. Gegevens zijn juist, maar gebruiker nog niet inloggen.
3. Token genereren en opslaan in user table en versturen via SMS.
4. Gebruiker redirecten naar invoerscherm voor token.
5. Gebruiker voert token (uit smsje) in en klikt op verifiëren.
6. Ingevulde token verifiëren met token uit database.
7. Token is juist, dus gebruiker inloggen, done!
Probleem
Vanaf punt 4 is de gebruiker nog niet ingelogd, maar weten we dat email en wachtwoord kloppen en sturen we dan pas een token via sms. Maar als hij het token dan invult, wil je niet nogmaals vragen om een email en wachtwoord.
Mogelijke oplossingen
- Aparte middleware van maken, die na inloggen ook een geverifieerd token wil hebben.
- Email en wachtwoord onthouden (oid.) als gebruiker token invult en op verifiëren klikt.
Die laatste heeft natuurlijk m'n voorkeur, omdat je anders die extra middleware overal moet toevoegen. Maar wat is nu best practice?
Ik heb al heel wat pakketten bekeken voor 2FA, maar die laten integratie allemaal achterwege in de documentatie.
Procedure
1. Gebruiker vult gegevens in en klikt op inloggen.
2. Gegevens zijn juist, maar gebruiker nog niet inloggen.
3. Token genereren en opslaan in user table en versturen via SMS.
4. Gebruiker redirecten naar invoerscherm voor token.
5. Gebruiker voert token (uit smsje) in en klikt op verifiëren.
6. Ingevulde token verifiëren met token uit database.
7. Token is juist, dus gebruiker inloggen, done!
Probleem
Vanaf punt 4 is de gebruiker nog niet ingelogd, maar weten we dat email en wachtwoord kloppen en sturen we dan pas een token via sms. Maar als hij het token dan invult, wil je niet nogmaals vragen om een email en wachtwoord.
Mogelijke oplossingen
- Aparte middleware van maken, die na inloggen ook een geverifieerd token wil hebben.
- Email en wachtwoord onthouden (oid.) als gebruiker token invult en op verifiëren klikt.
Die laatste heeft natuurlijk m'n voorkeur, omdat je anders die extra middleware overal moet toevoegen. Maar wat is nu best practice?
Ik heb al heel wat pakketten bekeken voor 2FA, maar die laten integratie allemaal achterwege in de documentatie.