From 73ead5939cc32092958183a0da63f05396c32faf Mon Sep 17 00:00:00 2001 From: root Date: Tue, 11 Mar 2025 09:29:09 +0100 Subject: [PATCH] =?UTF-8?q?Aktualisiere=20Backend-README=20f=C3=BCr=20loka?= =?UTF-8?q?les=20Authentifizierungssystem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- backend/README.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/backend/README.md b/backend/README.md index 6cf4049..f39116b 100644 --- a/backend/README.md +++ b/backend/README.md @@ -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