Login Systeem Informatie
Uitgebreide Login Flow
Gebruiker registreert
↓
Admin goedkeurt account
↓
Login
↓
2FA via Email
of
Magic Link login
↓
Trusted Device? → 2FA overslaan
↓
Dashboard (user)
↓
Admin Dashboard / Admin acties
of
Wachtwoord vergeten → Reset link → Nieuw wachtwoord
Dit systeem is een volledig **modern gebruikersauthenticatieplatform** in PHP + SQLite + PDO. Het ondersteunt meerdere features gericht op gebruiksvriendelijkheid en veiligheid.
Functionaliteiten
- Gebruikersregistratie met username, email, volledige naam, rol
- Admin goedkeuring van nieuwe accounts
- Inloggen met wachtwoord + 2FA via email link
- Magic link login (optioneel, passwordless login)
- Wachtwoord vergeten / reset functionaliteit
- Trusted devices: 2FA kan worden overgeslagen op bekende IP & browser
- Role-based toegang (admin vs user)
- Veilige sessies met CSRF-bescherming
- Uniforme, moderne styling via centrale header/footer + CSS
Database Tabellen
- users: id, username, email, full_name, role, password_hash, is_approved, is_admin, created_at
- login_tokens: 2FA tokens met token, user_id, expires_at
- magic_tokens: magic login tokens met token, user_id, expires_at
- password_resets: password reset tokens met token, user_id, expires_at
- trusted_devices: opgeslagen apparaten om 2FA te skippen
Beveiliging
- Wachtwoorden worden opgeslagen met password_hash()
- CSRF tokens op alle formulieren
- Single-use tokens voor 2FA, magic links en password resets
- Trusted devices met expiratie
- Email-verificatie voor 2FA en magic link login
- Veilige session handling (session_regenerate_id)
Admin Functionaliteiten
- Gebruikers overzicht met status (pending/approved)
- Goedkeuren/verwijderen van gebruikers
- Admin badge zichtbaar in overzicht
- Role-based acties (extra knoppen voor admins)
- Email notificatie bij nieuwe registraties
UX & Styling
- Glassy cards voor forms & dashboard
- Consistente buttons, inputs en messages
- Responsive design voor mobiel en desktop
- Topbar toont rol + uitloggen
- Footer met copyright
Testen
- Direct klikbare 2FA / magic links in testmodus
- Debug messages via
$errors[]en$message - Geen gebruik van
die()voor errors → alles zichtbaar op scherm
Toekomstige uitbreidingen
- Password strength meter / show-hide wachtwoord
- Audit log voor admin acties
- Admin dashboard widgets (pending users, laatste logins)
- Email templates met HTML / logo
- Social login / OAuth integratie