# Laravel Fortify & Sanctum Setup ## Übersicht Dieses Projekt wurde mit Laravel Fortify für die Authentifizierung und Laravel Sanctum für API-Token-Management konfiguriert. Die Authentifizierung verwendet Livewire-Komponenten mit Flux UI für eine moderne, reaktive Benutzeroberfläche. ## Installation Die Pakete wurden bereits installiert und konfiguriert: ```bash composer require laravel/fortify laravel/sanctum ``` ## Konfiguration ### Fortify - **Konfigurationsdatei**: `config/fortify.php` - **Service Provider**: `app/Providers/FortifyServiceProvider.php` - **Aktionen**: `app/Actions/Fortify/` - **Livewire-Komponenten**: `resources/views/livewire/auth/` ### Sanctum - **Konfigurationsdatei**: `config/sanctum.php` - **Migrationen**: Ausgeführt - **User Model**: Aktualisiert mit `HasApiTokens` Trait ## Features ### Fortify Features (aktiviert) - ✅ Benutzerregistrierung (Livewire + Flux UI) - ✅ Passwort-Reset (Livewire + Flux UI) - ✅ Profilaktualisierung - ✅ Passwort-Update - ✅ Zwei-Faktor-Authentifizierung - ⚠️ E-Mail-Verifizierung (deaktiviert in der Konfiguration) ### Sanctum Features - ✅ API-Token-Erstellung - ✅ Token-Revocation - ✅ Geschützte API-Routen ## Technologie-Stack - **Laravel Fortify**: Backend-Authentifizierung - **Laravel Sanctum**: API-Token-Management - **Livewire**: Reaktive Frontend-Komponenten - **Flux UI**: Moderne UI-Komponenten - **Volt**: Livewire-Komponenten-Syntax ## Routen ### Web-Authentifizierung (pr-copilot.test) - `GET /login` - Anmeldeseite (Livewire) - `POST /login` - Anmeldung (Livewire) - `POST /logout` - Abmeldung - `GET /register` - Registrierungsseite (Livewire) - `POST /register` - Registrierung (Livewire) - `GET /forgot-password` - Passwort vergessen (Livewire) - `POST /forgot-password` - Passwort-Reset-Link senden (Livewire) - `GET /reset-password/{token}` - Passwort zurücksetzen (Livewire) - `POST /reset-password` - Neues Passwort setzen (Livewire) - `GET /verify-email` - E-Mail-Verifizierung (Livewire) - `GET /confirm-password` - Passwort bestätigen (Livewire) ### API-Routen (api.pr-copilot.test) - `GET /api/user` - Aktueller Benutzer (geschützt) - `GET /api/profile` - Benutzerprofil (geschützt) - `POST /api/login` - API-Anmeldung (öffentlich) ## Verwendung ### Web-Authentifizierung 1. Besuchen Sie `http://portal.pr-copilot.test/login` 2. Registrieren Sie sich oder melden Sie sich an 3. Nutzen Sie die verschiedenen Authentifizierungsfeatures ### API-Authentifizierung 1. **Token erstellen**: ```bash curl -X POST http://api.pr-copilot.test/login \ -H "Content-Type: application/json" \ -d '{"email":"user@example.com","password":"password"}' ``` 2. **Geschützte Route aufrufen**: ```bash curl -X GET http://api.pr-copilot.test/api/user \ -H "Authorization: Bearer YOUR_TOKEN_HERE" ``` ### Zwei-Faktor-Authentifizierung 1. Aktivieren Sie 2FA in Ihren Benutzereinstellungen 2. Scannen Sie den QR-Code mit Ihrer Authentifizierungs-App 3. Geben Sie den Code bei der Anmeldung ein ## Livewire-Komponenten Alle Auth-Komponenten befinden sich in `resources/views/livewire/auth/`: - `login.blade.php` - Anmeldeseite mit Flux UI - `register.blade.php` - Registrierungsseite mit Flux UI - `forgot-password.blade.php` - Passwort vergessen mit Flux UI - `reset-password.blade.php` - Passwort zurücksetzen mit Flux UI - `verify-email.blade.php` - E-Mail-Verifizierung mit Flux UI - `confirm-password.blade.php` - Passwort bestätigen mit Flux UI ### Flux UI Features - Moderne, responsive Benutzeroberfläche - Eingabevalidierung in Echtzeit - Rate Limiting mit visuellen Feedback - Dark Mode Unterstützung - Barrierefreiheit ## Anpassungen ### Fortify-Konfiguration anpassen Bearbeiten Sie `config/fortify.php` um Features zu aktivieren/deaktivieren: ```php 'features' => [ Features::registration(), Features::resetPasswords(), Features::emailVerification(), // Aktivieren für E-Mail-Verifizierung Features::updateProfileInformation(), Features::updatePasswords(), Features::twoFactorAuthentication([ 'confirm' => true, 'confirmPassword' => true, ]), ], ``` ### Livewire-Komponenten anpassen Bearbeiten Sie die Komponenten in `resources/views/livewire/auth/`: ```php // Beispiel: Login-Komponente anpassen new #[Layout('components.layouts.auth')] class extends Component { #[Validate('required|string|email')] public string $email = ''; // Ihre Anpassungen hier... } ``` ### Sanctum-Konfiguration anpassen Bearbeiten Sie `config/sanctum.php` um Token-Einstellungen zu ändern: ```php 'expiration' => null, // Token-Ablaufzeit (null = nie) 'guard' => ['web'], // Guards für Sanctum ``` ## Sicherheit - Alle Passwörter werden automatisch gehashed - CSRF-Schutz ist aktiviert - Rate Limiting ist konfiguriert - Zwei-Faktor-Authentifizierung ist verfügbar - API-Tokens können widerrufen werden - Livewire-Komponenten haben eingebaute Sicherheitsfeatures ## Nächste Schritte 1. Konfigurieren Sie E-Mail-Einstellungen in `.env` für Passwort-Reset 2. Aktivieren Sie E-Mail-Verifizierung falls gewünscht 3. Passen Sie die Livewire-Komponenten an Ihr Design an 4. Erstellen Sie zusätzliche API-Routen nach Bedarf 5. Konfigurieren Sie Flux UI Themes nach Ihren Wünschen