feat(DIRECTUS-SETUP.md): add UUID auth for user login
This commit is contained in:
@@ -14,6 +14,10 @@ Komplette Anleitung zur Einrichtung von Directus als Backend für die dgray Klei
|
||||
4. [Flows (Automatisierungen)](#4-flows-automatisierungen)
|
||||
5. [Einstellungen](#5-einstellungen)
|
||||
6. [Frontend-Integration](#6-frontend-integration)
|
||||
7. [Initiale Daten](#7-initiale-daten)
|
||||
8. [Checkliste](#8-checkliste)
|
||||
9. [Anonyme Authentifizierung (UUID-basiert)](#9-anonyme-authentifizierung-uuid-basiert)
|
||||
10. [Sicherheitshinweise](#10-sicherheitshinweise)
|
||||
|
||||
---
|
||||
|
||||
@@ -778,10 +782,106 @@ if (directus.isAuthenticated()) {
|
||||
|
||||
---
|
||||
|
||||
## 9. Sicherheitshinweise
|
||||
## 9. Anonyme Authentifizierung (UUID-basiert)
|
||||
|
||||
Für maximale Privatsphäre nutzt dgray.io ein UUID-basiertes Login-System ohne echte E-Mail-Adressen.
|
||||
|
||||
### 9.1 Konzept
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ User klickt "Account erstellen" │
|
||||
│ ↓ │
|
||||
│ Client generiert UUID v4: │
|
||||
│ f47ac10b-58cc-4372-a567-0e02b2c3d479 │
|
||||
│ ↓ │
|
||||
│ Directus erhält: │
|
||||
│ • E-Mail: f47ac10b-58cc-4372-a567-0e02b2c3d479@dgray.io │
|
||||
│ • Passwort: f47ac10b-58cc-4372-a567-0e02b2c3d479 │
|
||||
│ ↓ │
|
||||
│ User speichert UUID → fertig │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 9.2 Vorteile
|
||||
|
||||
| Aspekt | Beschreibung |
|
||||
|--------|--------------|
|
||||
| **Privatsphäre** | Keine echten E-Mail-Adressen, keine persönlichen Daten |
|
||||
| **Einfachheit** | User merkt sich nur eine UUID |
|
||||
| **Sicherheit** | 122 bit Entropie, Argon2-Hashing durch Directus |
|
||||
| **Anonymität** | Kein Bezug zur Identität möglich |
|
||||
|
||||
### 9.3 Tradeoffs
|
||||
|
||||
| Pro | Contra |
|
||||
|-----|--------|
|
||||
| Keine echten Daten nötig | UUID verloren = Account verloren |
|
||||
| Nicht rückverfolgbar | Kein Passwort-Reset möglich |
|
||||
| Simples UX (1 Secret) | User muss UUID sicher aufbewahren |
|
||||
|
||||
### 9.4 Frontend-Implementation
|
||||
|
||||
```javascript
|
||||
// Account erstellen
|
||||
async function createAnonymousAccount() {
|
||||
const uuid = crypto.randomUUID();
|
||||
const email = `${uuid}@dgray.io`;
|
||||
const password = uuid;
|
||||
|
||||
// Bei Directus registrieren
|
||||
await directus.register(email, password);
|
||||
|
||||
// UUID dem User anzeigen zum Speichern
|
||||
showUuidToUser(uuid);
|
||||
|
||||
return uuid;
|
||||
}
|
||||
|
||||
// Login
|
||||
async function login(uuid) {
|
||||
const email = `${uuid}@dgray.io`;
|
||||
await directus.login(email, uuid);
|
||||
}
|
||||
```
|
||||
|
||||
### 9.5 UX-Flow
|
||||
|
||||
1. **Registrierung:**
|
||||
- User klickt "Account erstellen"
|
||||
- System generiert UUID, zeigt sie prominent an
|
||||
- User kopiert UUID (Button "Kopieren")
|
||||
- Hinweis: "Speichere diese ID sicher - sie ist dein einziger Zugang!"
|
||||
|
||||
2. **Login:**
|
||||
- User gibt UUID ein (ein Feld)
|
||||
- System baut E-Mail + Passwort daraus
|
||||
- Fertig
|
||||
|
||||
3. **Recovery:**
|
||||
- Nicht möglich (by design)
|
||||
- Optional: QR-Code zum Offline-Speichern anbieten
|
||||
|
||||
### 9.6 Directus-Konfiguration
|
||||
|
||||
```env
|
||||
# Public Registration erlauben
|
||||
PUBLIC_REGISTRATION=true
|
||||
|
||||
# Keine E-Mail-Verifizierung (fake E-Mails)
|
||||
AUTH_EMAIL_VERIFY=false
|
||||
|
||||
# Kein Passwort-Reset (nicht möglich mit fake E-Mails)
|
||||
AUTH_PASSWORD_RESET=false
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. Sicherheitshinweise
|
||||
|
||||
1. **Monero-Adressen** werden nur dem Listing-Ersteller und authentifizierten Nutzern angezeigt
|
||||
2. **Keine echten E-Mails** in Public-Responses - nur über Chat-System
|
||||
2. **Keine echten E-Mails** - UUID-basierte Authentifizierung
|
||||
3. **Rate Limiting** für API-Endpunkte aktivieren
|
||||
4. **Bilder-Upload** auf max. 10MB und erlaubte Typen beschränken
|
||||
5. **XSS-Schutz** für WYSIWYG-Felder in Directus aktivieren
|
||||
6. **UUID-Warnung** bei Registrierung: User muss UUID sicher speichern
|
||||
|
||||
Reference in New Issue
Block a user