185 lines
5.3 KiB
Markdown
185 lines
5.3 KiB
Markdown
# 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 (pressekonto.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.pressekonto.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.pressekonto.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.pressekonto.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.pressekonto.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.pressekonto')] 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
|