Was ist Fortify?
Laravel Fortify ist eine Frontend-unabhängige Authentifizierungs-Backend-Implementierung. Sie liefert sämtliche Routen und Controller, die für Login, Registrierung, Passwort-Reset, E-Mail-Bestätigung, 2FA und Passkeys nötig sind.Fortify hat kein eigenes UI. Es funktioniert, indem ein Starter-Kit oder Ihr eigenes UI Requests an die Fortify-Routen sendet.
Historie: Von Jetstream zum aktuellen Starter-Kit
Warum die aktuellen Starter-Kits weiterhin Fortify einsetzen
Die ursprünglichen React-/Vue-Starter-Kits wurden ohne Fortify umgesetzt. Als jedoch die Zwei-Faktor-Authentifizierung (2FA) unterstützt werden musste, wurde Fortify direkt übernommen — und mit ihm die gesamte Auth-Basis auf Fortify umgestellt. Da Fortify als „Frontend-unabhängig” entworfen ist, harmoniert es hervorragend mit Inertia-basierten Starter-Kits und bleibt weiter im Einsatz.Fortify ist derzeit das am längsten kontinuierlich verwendete offizielle Laravel-Auth-Paket. Seit seiner Einführung 2020 ist es in unterschiedlichen Formen (Jetstream → aktuelle Starter-Kits) aktiv.
Aufbau der aktuellen Starter-Kits
In den React-/Vue-Starter-Kits wird Fortify über folgende Dateien konfiguriert:app/Providers/FortifyServiceProvider.php— Registrierung von Views, Aktionen und Rate Limitsconfig/fortify.php— Aktivierte Features und Auth-Konfiguration
Wichtigste Einstellungen in config/fortify.php
Features::passkeys()) sind in den Starter-Kits standardmäßig nicht aktiviert. Zum Aktivieren fügen Sie den Eintrag im features-Array hinzu.
Konfiguration im FortifyServiceProvider
Der FortifyServiceProvider der Starter-Kits übernimmt drei Aufgaben.
1. Aktionen konfigurieren
app/Actions/Fortify/ kapseln die Logik für Benutzeranlage und Passwort-Reset. Validierung und Hashing bündeln sich hier.
2. Views konfigurieren
Features::enabled() werden Feature-Flags geprüft und an die View übergeben.
In Blade-Anwendungen geben Sie statt
Inertia::render(...) einfach view('auth.login') zurück. Wechseln Sie das Frontend, müssen Sie nur den FortifyServiceProvider anpassen — die Auth-Logik bleibt unverändert.3. Rate Limits konfigurieren
- Limiter
login: Begrenzung nach Kombination aus E-Mail-Adresse und IP-Adresse (Brute-Force-Schutz). - Limiter
two-factor: Begrenzung anhand der Login-Versuchs-ID in der Session.
RateLimiter::for() denselben Key wie in config/fortify.php unter limiters.
Wichtige Funktionen und registrierte Routen
Überblick über die von Fortify registrierten Routen nach Feature.| Feature | Methode | Route |
|---|---|---|
| Login | GET | /login |
| Login | POST | /login |
| Logout | POST | /logout |
| Registrierung | GET | /register |
| Registrierung | POST | /register |
| Passwort-Reset-Anforderung | GET / POST | /forgot-password |
| Passwort-Reset | GET / POST | /reset-password |
| E-Mail-Bestätigung | GET | /email/verify |
| Erneut senden des Bestätigungs-Links | POST | /email/verification-notification |
| Passwortbestätigung | GET / POST | /user/confirm-password |
| 2FA aktivieren | POST | /user/two-factor-authentication |
| 2FA-Challenge | GET / POST | /two-factor-challenge |
| Passkey-Login | GET / POST | /passkeys/login |
| Passkey-Verwaltung | GET / POST / DELETE | /user/passkeys |
php artisan route:list --name=fortify oder einfach php artisan route:list sehen Sie die tatsächlich registrierten Routen.
Zwei-Faktor-Authentifizierung (2FA)
In den Starter-Kits istFeatures::twoFactorAuthentication() aktiviert. confirm und confirmPassword sind beide auf true gesetzt.
| Option | Bedeutung |
|---|---|
confirm | Verlangt nach dem Aktivieren eine Bestätigung per Auth-Code |
confirmPassword | Verlangt vor 2FA-Änderungen eine Passwortbestätigung |
2FA aktivieren
Ein POST-Request an
/user/two-factor-authentication. Bei Erfolg wird in der Session der Status two-factor-authentication-enabled gesetzt.QR-Code anzeigen
Ein GET-Request an
/user/two-factor-qr-code liefert das SVG des QR-Codes zum Scannen in der Authenticator-App.Mit Auth-Code bestätigen
Ein POST-Request mit Code an
/user/confirmed-two-factor-authentication schließt die Einrichtung ab.Passkeys
Passkeys wurden erst kürzlich als Fortify-Feature ergänzt. Sie bieten passwortlose Authentifizierung per WebAuthn und unterstützen Face ID, Touch ID, Windows Hello und Hardware-Security-Keys.Aktivieren
Ergänzen Sie dasfeatures-Array in config/fortify.php.
PasskeyUser und den Trait PasskeyAuthenticatable am User-Modell hinzu.
passkeys in config/fortify.php.
Fortifys Passkey-Unterstützung wrappt intern das Composer-Paket
laravel/passkeys. Sie müssen dessen Konfiguration nicht veröffentlichen; die Werte unter passkeys in config/fortify.php haben Vorrang.@laravel/passkeys, React/Vue/Svelte-Helper usw.) finden Sie in der Passkey-Erstuntersuchung.
Verwandte Seiten
Eigene Auth-Guards
Erläutert, wie Sie durch Implementierung der Interfaces Guard und StatefulGuard eigene Authentifizierungs-Guards bauen.
Offizielle Dokumentation: Laravel Fortify
Für Installation, alle Funktionen und Anpassungen konsultieren Sie die offizielle Dokumentation.