Aktualisiere Backend-README für lokales Authentifizierungssystem

- Entferne OAuth-Authentifizierung aus Funktionsumfang
- Aktualisiere Technologie-Stack (entferne Authlib)
- Ändere API-Endpunkte für Authentifizierung
- Aktualisiere Datenmodell (füge Passwort-Hash hinzu, entferne GitHub-ID)
- Aktualisiere Sicherheitsanforderungen und Umgebungsvariablen

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root 2025-03-11 09:29:09 +01:00
parent f480ed00bd
commit 73ead5939c

View File

@ -4,7 +4,7 @@ Dies ist das Backend für das MYP (Manage Your Printer) Projekt, ein IHK-Abschlu
## Funktionen
- OAuth-Authentifizierung mit GitHub
- Lokales Authentifizierungssystem (Offline-fähig)
- Rollen-basierte Zugriffskontrolle (Admin/User/Guest)
- Druckerverwaltung (Hinzufügen, Bearbeiten, Löschen)
- Reservierungsverwaltung (Erstellen, Abbrechen, Verlängern)
@ -18,7 +18,6 @@ Dies ist das Backend für das MYP (Manage Your Printer) Projekt, ein IHK-Abschlu
- **Flask**: Web-Framework
- **SQLAlchemy**: ORM für Datenbankinteraktionen
- **SQLite**: Datenbank (kann für Produktion durch PostgreSQL ersetzt werden)
- **Authlib**: OAuth-Integration für GitHub-Authentifizierung
- **Tapo Python Library**: Steuerung der Tapo P115 WLAN-Steckdosen
- **Gunicorn**: WSGI HTTP Server für die Produktionsumgebung
- **Docker**: Containerisierung der Anwendung
@ -79,9 +78,10 @@ Die Anwendung ist dann unter http://localhost:5000 erreichbar.
### Authentifizierung
- `GET /auth/login`: GitHub-Anmeldung einleiten
- `GET /auth/login/callback`: GitHub-Callback-Endpunkt
- `POST /auth/register`: Neuen Benutzer registrieren
- `POST /auth/login`: Benutzer anmelden
- `POST /auth/logout`: Abmelden und Session beenden
- `POST /api/create-initial-admin`: Initialen Administrator erstellen
- `GET /api/me`: Aktuelle Benutzerinformationen abrufen
### Benutzer
@ -118,8 +118,8 @@ Die Anwendung ist dann unter http://localhost:5000 erreichbar.
### Benutzer (User)
- id (String UUID, Primary Key)
- github_id (Integer, Unique)
- username (String, Unique)
- password_hash (String)
- display_name (String)
- email (String, Unique)
- role (String, 'admin', 'user' oder 'guest')
@ -157,10 +157,11 @@ Die Anwendung steuert Tapo P115 WLAN-Steckdosen, um die Drucker basierend auf Re
## Sicherheit
- Die Anwendung verwendet GitHub OAuth für die Authentifizierung
- Die Anwendung verwendet ein lokales Authentifizierungssystem mit Passwort-Hashing
- Sitzungsdaten werden in Server-Side-Sessions gespeichert
- Zugriffskontrollen sind implementiert, um sicherzustellen, dass Benutzer nur auf ihre eigenen Daten zugreifen können
- Admin-Benutzer haben Zugriff auf alle Daten und können Systemkonfigurationen ändern
- Der erste registrierte Benutzer wird automatisch zum Administrator
## Logging
@ -172,9 +173,6 @@ Die folgenden Umgebungsvariablen müssen konfiguriert werden:
- `SECRET_KEY`: Geheimer Schlüssel für die Session-Verschlüsselung
- `DATABASE_URL`: URL zur Datenbank (Standard: SQLite-Datenbank im Instance-Verzeichnis)
- `OAUTH_CLIENT_ID`: GitHub OAuth Client ID
- `OAUTH_CLIENT_SECRET`: GitHub OAuth Client Secret
- `GITHUB_API_BASE_URL`, `GITHUB_AUTHORIZE_URL`, `GITHUB_TOKEN_URL`: URLs für GitHub OAuth (falls GitHub Enterprise verwendet wird)
- `TAPO_USERNAME`: Benutzername für die Tapo-Steckdosen
- `TAPO_PASSWORD`: Passwort für die Tapo-Steckdosen
- `TAPO_DEVICES`: JSON-Objekt mit der Zuordnung von Drucker-IDs zu IP-Adressen der Steckdosen