Add authentication system with login, password reset, and member area

This commit is contained in:
Torsten Schulz (local)
2025-10-21 11:23:06 +02:00
parent 4dc07b7b25
commit 2b249577a7
17 changed files with 1080 additions and 2 deletions

56
AUTH_README.md Normal file
View File

@@ -0,0 +1,56 @@
# 🔐 Authentifizierung & Mitgliederbereich
## Standard-Login
**E-Mail:** `admin@harheimertc.de`
**Passwort:** `admin123`
⚠️ **WICHTIG:** Ändern Sie dieses Passwort sofort nach der ersten Anmeldung!
## Passwort-Hash generieren
Um einen neuen Benutzer oder ein neues Passwort zu erstellen, können Sie folgenden Node.js-Code verwenden:
```javascript
import bcrypt from 'bcryptjs'
const password = 'IhrNeuesPasswort'
const hash = await bcrypt.hash(password, 10)
console.log(hash)
```
Oder mit einem Online-Tool: https://bcrypt-generator.com/ (Rounds: 10)
## Benutzerrollen
- **admin**: Voller Zugriff auf CMS und Mitgliederbereich
- **vorstand**: Zugriff auf CMS und Mitgliederbereich
- **mitglied**: Nur Mitgliederbereich
## Dateien
- `server/data/users.json` - Benutzerdaten (verschlüsselte Passwörter)
- `server/data/members.json` - Mitgliederdaten (Telefon, E-Mail, etc.)
- `server/data/sessions.json` - Aktive Sessions
## Sicherheit
- Passwörter werden mit bcrypt gehasht (Rounds: 10)
- JWT-Tokens für Sessions (7 Tage gültig)
- HTTP-Only Cookies
- Geschützte API-Routen
- Middleware für geschützte Seiten
## Environment Variables
Fügen Sie in `.env` hinzu:
```
JWT_SECRET=ihr-geheimer-jwt-schluessel-hier
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=ihre-email@example.com
SMTP_PASS=ihr-smtp-passwort
SMTP_FROM=noreply@harheimertc.de
```