57 lines
1.7 KiB
Markdown
57 lines
1.7 KiB
Markdown
# Admin-Passwort setzen
|
|
|
|
Dieses Script ermöglicht es, das Passwort für den Admin-User (`admin@harheimertc.de`) zu setzen oder zu ändern.
|
|
|
|
## Verwendung
|
|
|
|
### Mit Passwort als Argument
|
|
|
|
```bash
|
|
node scripts/set-admin-password.js "mein-neues-passwort"
|
|
```
|
|
|
|
### Interaktiv (Passwort wird abgefragt)
|
|
|
|
```bash
|
|
node scripts/set-admin-password.js
|
|
```
|
|
|
|
Das Script fragt dann nach dem neuen Passwort.
|
|
|
|
## Funktionen
|
|
|
|
- **Findet oder erstellt den Admin-User**: Falls der Admin-User nicht existiert, wird er automatisch erstellt
|
|
- **Passwort-Hashing**: Das Passwort wird mit bcrypt gehasht (10 Runden)
|
|
- **Verschlüsselte Speicherung**: Die Benutzerdaten werden verschlüsselt gespeichert
|
|
- **Validierung**: Prüft, dass das Passwort mindestens 8 Zeichen lang ist
|
|
|
|
## Voraussetzungen
|
|
|
|
- `ENCRYPTION_KEY` muss in der `.env` Datei gesetzt sein (für verschlüsselte Speicherung)
|
|
- Die Datei `server/data/users.json` muss existieren oder wird automatisch erstellt
|
|
|
|
## Beispiel
|
|
|
|
```bash
|
|
# Passwort direkt setzen
|
|
node scripts/set-admin-password.js "MeinSicheresPasswort123!"
|
|
|
|
# Interaktiv
|
|
node scripts/set-admin-password.js
|
|
# Eingabeaufforderung: Neues Passwort für admin@harheimertc.de:
|
|
```
|
|
|
|
## Sicherheit
|
|
|
|
- Das Passwort wird niemals im Klartext gespeichert
|
|
- Es wird mit bcrypt gehasht (10 Runden)
|
|
- Die Benutzerdaten werden verschlüsselt gespeichert
|
|
- Das Passwort wird nicht in der Kommandozeilen-Historie gespeichert (bei interaktiver Eingabe)
|
|
|
|
## Fehlerbehandlung
|
|
|
|
Falls die Entschlüsselung der Benutzerdaten fehlschlägt:
|
|
- Prüfe, ob `ENCRYPTION_KEY` in der `.env` Datei korrekt gesetzt ist
|
|
- Stelle sicher, dass der Schlüssel mit dem übereinstimmt, der zum Verschlüsseln verwendet wurde
|
|
|