First commit
This commit is contained in:
commit
7cf3558ba7
12933 changed files with 1180047 additions and 0 deletions
185
dev/FORTIFY-SANCTUM-SETUP.md
Normal file
185
dev/FORTIFY-SANCTUM-SETUP.md
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
# 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 (portal.b2in.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.b2in.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.b2in.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.b2in.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.b2in.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
|
||||
Loading…
Add table
Add a link
Reference in a new issue