Dieser Artikel ist eine erste Analyse auf Basis der READMEs von
laravel/passkeys-server und laravel/passkeys. Beide Pakete befinden sich noch in einer Entwicklungsphase ohne Tags (Stand: April 2026).Was steckt hinter diesen Paketen?
In den offiziellen Laravel-Repositories werden zwei Pakete zur Umsetzung passwortloser Authentifizierung (WebAuthn / Passkeys) bereitgestellt.- Serverseitig (PHP):
laravel/passkeys-server - Clientseitig (JavaScript):
@laravel/passkeys
Serverseitig: laravel/passkeys-server
Installation und Erst-Setup
Bei Bedarf lässt sich auch die Konfigurationsdatei veröffentlichen.
Automatisch registrierte Routen
| Kategorie | Methode | Route | Zweck |
|---|---|---|---|
| Login (guest) | GET | /passkeys/login/options | Optionen für die Authentifizierung abrufen |
| Login (guest) | POST | /passkeys/login | Passkey verifizieren und einloggen |
| Confirm (auth) | GET | /passkeys/confirm/options | Optionen für die Bestätigung abrufen |
| Confirm (auth) | POST | /passkeys/confirm | Passkey bestätigen |
| Management (auth) | GET | /user/passkeys/options | Optionen für die Registrierung abrufen |
| Management (auth) | POST | /user/passkeys | Neuen Passkey speichern |
| Management (auth) | DELETE | /user/passkeys/{passkey} | Passkey löschen |
Wichtige Optionen in config/passkeys.php
relying_party_idallowed_originsuser_handle_secrettimeoutguardmiddlewarethrottleredirect
Events
Das Paket löst folgende Events aus.PasskeyRegisteredPasskeyVerifiedPasskeyDeleted
Anpassungspunkte
CustomActions (Austausch der WebAuthn-Verarbeitung)
CustomActions (Austausch der WebAuthn-Verarbeitung)
Sie können
GenerateRegistrationOptions, GenerateVerificationOptions, StorePasskey, VerifyPasskey und DeletePasskey erweitern, im Service-Container binden und das Verhalten ersetzen.CustomResponses (Austausch der Responses)
CustomResponses (Austausch der Responses)
Durch eigene Implementierungen von Contracts wie
PasskeyLoginResponse passen Sie Erfolgs-Responses (JSON, Redirects u. a.) an Ihre Anforderungen an.Clientseitig: @laravel/passkeys
@laravel/passkeys ist ein JavaScript-Client, der die WebAuthn-Zeremonien im Browser übernimmt.
Installation
Grundlegende API
Framework-Helfer
- React:
usePasskeyVerify,usePasskeyRegisteraus@laravel/passkeys/react - Vue:
usePasskeyVerify,usePasskeyRegisteraus@laravel/passkeys/vue - Svelte:
usePasskeyVerify,usePasskeyRegisteraus@laravel/passkeys/svelte
Passkey-Autofill
Mitautofill: true lässt sich in Inputs mit autocomplete="... webauthn" der Passkey-Picker des Browsers anzeigen. In nicht unterstützten Umgebungen oder bei Nutzer-Abbruch erfolgt ein Fallback auf den normalen Ablauf.
Typisierte Fehler
Die README stellt folgende Fehlerklassen bereit.NotSupportedErrorUserCancelledErrorPasskeyExistsErrorPasskeyError(Basisklasse)
SSR-Unterstützung
WebAuthn ist zwar eine Browser-API, doch die Framework-Hooks sind SSR-sicher. Auf der Serverseite wirdisSupported als false behandelt und nach dem Mount auf den echten Browser-Zustand aktualisiert.
Fazit
- Die Kombination aus
laravel/passkeys-server(PHP) und@laravel/passkeys(JS) erlaubt in Laravel den Aufbau eines vollständigen Passkey-Auth-Stacks. - Beide Pakete befinden sich in einer Entwicklungsphase ohne Tags, dürften jedoch als offizieller Bestandteil des Laravel-Ökosystems künftig ein Standard-Authentifizierungsweg werden.
- Bei einer frühen Einführung sollten Sie das Design an Routen, Konfiguration, Fehlerbehandlung und Erweiterungspunkten aus der README ausrichten.
Passkeys wurden anschließend offiziell als Feature von Laravel Fortify aufgenommen. Um Passkeys über Fortify zu aktivieren, verwenden Sie
Features::passkeys(), statt laravel/passkeys-server direkt zu installieren. Details finden Sie unter Laravel Fortify und die Starterkits.laravel/passkeys-server
Aktuelle README und Implementierung des serverseitigen Pakets.
@laravel/passkeys
Aktuelle README und API des clientseitigen Pakets.
Laravel Fortify und die Starterkits
Anleitung zum Aktivieren von Passkeys über Fortify und der Zusammenhang mit den Starterkits.