This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Authentifizierung
Nutzertypen
Typ
ID-Typ
Beschreibung
Gast
string (Session-ID)
Temporär, kein Passwort, kein Profil
Nutzer
number (DB-ID)
Registriert, persistente Stats
Admin
number + role: "admin"
Vollzugriff auf Admin-Panel
Gast-Session
Alphanumerischer Name wählbar
Kann Echtzeit-Partien spielen
Keine Freunde, keine gespeicherten KI-Partien
req.session.user.id ist ein String
Registrierung & Login
Benutzername: alphanumerisch, eindeutig
E-Mail: optional, eindeutig wenn angegeben
Passwort: gehasht mit argon2
Session via express-session (gespeichert in PostgreSQL)
Admin-Rolle
ADMIN_EMAIL in .env setzen
Server setzt beim Start: UPDATE "user" SET role='admin' WHERE email=$1
Nutzer muss sich neu einloggen (Session wird aktualisiert)
Admins sehen im Header einen „Admin"-Button mit Schild-Icon.
Session-Middleware
requireAuth– prüft ob Nutzer eingeloggt (numerische ID)
requireAdmin– prüft zusätzlich role === "admin"
Ban-Check: Gebannte Nutzer erhalten 403, Session wird zerstört
Socket.io: Session wird bei jedem Ereignis neu geladen
Passwort-Sicherheit
Hashing: argon2 (memory-hard, resistent gegen Brute-Force)
Klartext-Passwort wird niemals gespeichert oder zurückgegeben
Delete Page
Deleting the wiki page "Authentifizierung" cannot be undone. Continue?