iToverDose/Software· 9 MAI 2026 · 08:00

Laravel führt native Passkeys ein: Einfache passwortlose Authentifizierung

Mit dem neuen Paket laravel/passkeys braucht es keine externen Bibliotheken mehr für passwortlose Anmeldungen in Laravel. Die integrierte Lösung vereinfacht die Implementierung von WebAuthn und spart Entwicklern wertvolle Zeit.

DEV Community3 min0 Kommentare

Laravel hat die Entwicklung für Entwickler erneut revolutioniert. Mit der Einführung des offiziellen Pakets laravel/passkeys im April 2026 entfällt die Notwendigkeit, auf Drittanbieter-Bibliotheken oder komplexe WebAuthn-Implementierungen zurückzugreifen. Die neue Lösung von Taylor Otwell bietet eine vollständige, native Unterstützung für passwortlose Authentifizierung – ideal für neue Projekte und bestehende Fortify-Anwendungen.

Drei Komponenten für eine nahtlose Integration

Das Paket besteht aus drei zentralen Bausteinen, die jeweils eine spezifische Aufgabe übernehmen. `laravel/passkeys` ist das serverseitige Composer-Paket, das WebAuthn-Validierungen durchführt, eine passkeys-Datenbank verwaltet und Routen für Anmeldung, Bestätigung und Verwaltung von Zugangsdaten bereitstellt. Entwickler können dabei auf vordefinierte Logik zurückgreifen oder eigene Erweiterungen über bereitgestellte Hooks einbauen.

Die zweite Komponente ist `@laravel/passkeys`, das npm-Paket für die clientseitige Steuerung. Es koordiniert die Registrierung und Verifizierung von Passkeys direkt im Browser und bietet dedizierte Hilfsfunktionen für React, Vue und Svelte – inklusive SSR-kompatibler Funktionen. Die öffentliche API reduziert sich auf zwei Methoden: Passkeys.register() und Passkeys.verify().

Für Laravel Fortify-Anwendungen sorgt die Fortify-Integration für eine nahtlose Einbindung. Durch die Aktivierung von Features::passkeys() in der Konfiguration und die Definition eines passkeys-Blocks in config/fortify.php stehen alle benötigten Endpunkte und Verträge (PasskeyUser, PasskeyAuthenticatable) sofort zur Verfügung. Entwickler müssen keine zusätzliche Logik implementieren.

Das Paket steht aktuell in Version v0.1.0, was nicht mit Instabilität gleichzusetzen ist. Vielmehr signalisiert die Versionsnummer, dass der öffentliche API möglicherweise noch Änderungen unterliegen wird – ähnlich wie bei anderen Laravel-Paketen in frühen Entwicklungsstadien.

Schritt-für-Schritt-Anleitung zur Installation

Die Einrichtung von laravel/passkeys erfolgt in wenigen Schritten. Zunächst wird das Paket über Composer installiert:

composer require laravel/passkeys

Anschließend werden die Datenbankmigrationen veröffentlicht und ausgeführt, um die passkeys-Tabelle zu erstellen:

php artisan vendor:publish --tag=passkeys-migrations
php artisan migrate

Ein entscheidender Schritt ist die Konfiguration eines geheimen Schlüssels in der .env-Datei. Dieser Schlüssel dient zur Ableitung stabiler, undurchsichtiger Benutzer-Handles und verhindert, dass Passkey-Zuordnungen bei sequentiellen Benutzer-IDs kompromittiert werden können. Der Wert kann mit folgendem Befehl generiert werden:

php artisan key:generate --show

Tragen Sie das Ergebnis als Wert für PASSKEYS_USER_HANDLE_SECRET ein. Falls dieser Eintrag fehlt, greift das Paket auf den APP_KEY zurück – was zwar funktioniert, aber aus Sicherheitsgründen nicht empfohlen wird. Bei einem späteren Wechsel des Anwendungsschlüssels bleiben die Passkeys so erhalten.

Anpassung des Benutzermodells

Die Integration in das Benutzermodell erfordert die Implementierung des PasskeyUser-Vertrags und die Verwendung des PasskeyAuthenticatable-Traits.

<?php

namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Passkeys\Contracts\PasskeyUser;
use Laravel\Passkeys\PasskeyAuthenticatable;

class User extends Authenticatable implements PasskeyUser
{
    use PasskeyAuthenticatable;

    // Restliche Modell-Logik...
}

Das Paket geht standardmäßig von den Spalten name und email in der users-Tabelle aus. Diese Werte werden von Authentifikatoren in deren Benutzeroberfläche angezeigt. Sollten andere Felder gewünscht sein, können die Methoden getPasskeyDisplayName() und getPasskeyUsername() überschrieben werden:

public function getPasskeyDisplayName(): string
{
    return $this->full_name ?? $this->email;
}

public function getPasskeyUsername(): string
{
    return $this->email;
}

Die passkeys-Tabelle speichert die Zugangsdaten und etabliert über das PasskeyAuthenticatable-Trait eine standardisierte Beziehung zum Benutzermodell. Zusätzliche Migrationen oder Pivot-Tabellen sind nicht erforderlich.

Nahtlose Integration mit Laravel Fortify

Für Projekte, die bereits Laravel Fortify nutzen, gestaltet sich die Aktivierung von Passkeys denkbar einfach. Fügen Sie folgende Zeile in die features-Konfiguration ein:

use Laravel\Fortify\Features;

'features' => [
    Features::registration(),
    Features::resetPasswords(),
    Features::emailVerification(),
    Features::passkeys(), // Passkeys aktivieren
],

Fortify übernimmt automatisch die Registrierung der benötigten Routen und stellt die Verträge bereit. Die bestehende Autorisierungslogik – etwa über Policies und Gates – bleibt unverändert. Passkeys ersetzen lediglich den Authentifizierungsschritt, nicht die darauf aufbauenden Berechtigungen.

Konfiguration anpassen: Wichtige Einstellungen

Falls individuelle Anpassungen nötig sind, kann die Konfiguration mit folgendem Befehl veröffentlicht werden:

php artisan vendor:publish --tag="passkeys-config"

Die Standardwerte in config/passkeys.php sind bereits gut durchdacht:

return [
    'relying_party_id' => parse_url(config('app.url'), PHP_URL_HOST),
    'allowed_origins' => [config('app.url')],
    'user_handle_secret' => env('PASSKEYS_USER_HANDLE_SECRET', config('app.key')),
    'timeout' => 60000,
    'guard' => 'web',
    'middleware' => ['web'],
    'management_middleware' => ['password.confirm'],
    'throttle' => 'throttle:6,1',
    'redirect' => '/',
];

Besonders wichtig sind die Einstellungen relying_party_id und management_middleware. Der relying_party_id muss der tatsächlichen Domain entsprechen, die der Benutzer aufruft – sonst scheitert die Passkey-Registrierung. Die management_middleware erzwingt eine erneute Passworteingabe vor dem Hinzufügen oder Löschen von Passkeys. Diese zusätzliche Absicherung ist essenziell für kritische Aktionen und sollte nicht deaktiviert werden.

Fazit: Passwortlose Authentifizierung für die Praxis

Mit laravel/passkeys bietet Laravel eine native, unkomplizierte Lösung für passwortlose Authentifizierung. Die Integration ist dank der drei Komponenten – serverseitiges Paket, npm-Client und Fortify-Unterstützung – denkbar einfach. Entwickler sparen Zeit und Aufwand, während Benutzer von einer modernen und sicheren Anmeldemethode profitieren. Die Zukunft der Authentifizierung ist passwortlos – und Laravel macht sie jetzt zugänglich für alle.

KI-Zusammenfassung

Laravel, yerel passkey desteğiyle birlikte geliyor. Artık üçüncü taraf paketlere ihtiyaç duymadan passkey ekleyebilirsiniz. Şifresiz kimlik doğrulama için daha basit ve güvenli bir yol.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #DXK43T

0 / 1200 ZEICHEN

Menschen-Check

5 + 6 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.