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.
Mit
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.
Aus dem 2FA-Konfigurationsbildschirm können Nutzer folgende Aktionen ausführen.
1
2FA aktivieren
Ein POST-Request an
/user/two-factor-authentication. Bei Erfolg wird in der Session der Status two-factor-authentication-enabled gesetzt.2
QR-Code anzeigen
Ein GET-Request an
/user/two-factor-qr-code liefert das SVG des QR-Codes zum Scannen in der Authenticator-App.3
Mit Auth-Code bestätigen
Ein POST-Request mit Code an
/user/confirmed-two-factor-authentication schließt die Einrichtung ab.4
Recovery-Codes speichern
Ein GET-Request an
/user/two-factor-recovery-codes liefert Recovery-Codes, die an einem sicheren Ort aufbewahrt werden sollten.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.