Files
harheimertc/scripts/README-set-admin-password.md

2.1 KiB

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

node scripts/set-admin-password.js "mein-neues-passwort"

Interaktiv (Passwort wird abgefragt)

node scripts/set-admin-password.js

Das Script fragt dann nach dem neuen Passwort.

Datei neu erstellen (bei Entschlüsselungsfehler)

Falls die users.json Datei nicht entschlüsselt werden kann (z.B. weil der ENCRYPTION_KEY nicht übereinstimmt), wird das Script automatisch fragen, ob die Datei neu erstellt werden soll. Sie können auch direkt das --recreate Flag verwenden:

node scripts/set-admin-password.js "mein-neues-passwort" --recreate

Wichtig: Die alte Datei wird automatisch als Backup gespeichert, bevor eine neue erstellt wird.

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

# 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