Skip to main content

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.
Die Designphilosophie „Frontend-unabhängig” ist entscheidend: Ob Blade, Inertia (React/Vue/Svelte) oder API — Sie können dasselbe Auth-Backend über alle Frontend-Stacks hinweg wiederverwenden. Deshalb wird Fortify seit Jahren durchgehend verwendet.

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 Limits
  • config/fortify.php — Aktivierte Features und Auth-Konfiguration

Wichtigste Einstellungen in config/fortify.php

Passkeys (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

Klassen unter app/Actions/Fortify/ kapseln die Logik für Benutzeranlage und Passwort-Reset. Validierung und Hashing bündeln sich hier.

2. Views konfigurieren

Jede View-Methode erhält eine Closure, die eine Inertia-Komponente zurückgibt. Wichtig: Über 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.
Registrieren Sie in 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 ist Features::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 das features-Array in config/fortify.php.
Fügen Sie zusätzlich das Contract PasskeyUser und den Trait PasskeyAuthenticatable am User-Modell hinzu.
Die WebAuthn-Einstellungen verwalten Sie unter dem Schlüssel 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.
Details zur Passkey-Implementierung (JS-Client @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.
Zuletzt geändert am 13. Juli 2026