spatie/laravel-passkeys
Add passkey (WebAuthn) login to Laravel. Includes a Livewire component to create/register passkeys and a Blade component to authenticate users without passwords, using built-in OS/password manager passkey support.
PasskeyRegisteredEvent and event configuration introduce a more robust event system, aligning with Laravel’s ecosystem for observability and extensibility. This enables finer-grained control over passkey lifecycle events (e.g., triggering notifications, logging, or custom workflows) without modifying core package logic.PasskeyRegistered) to implement custom logic (e.g., analytics, audit trails) without altering the package’s architecture.Illuminate\Events\Dispatcher), ensuring consistency with other Spatie packages and Laravel conventions.PasskeyRegisteredEvent via Laravel’s event listeners or observers, e.g.:
Event::listen(PasskeyRegistered::class, function (PasskeyRegistered $event) {
// Custom logic (e.g., send email, update analytics)
});
config/passkeys.php, allowing teams to disable events if unnecessary (e.g., in performance-sensitive environments).PasskeyRegisteredEvent? Examples include:
PasskeyRegistered::$passkey->credentialId) is considered sensitive? Should listeners sanitize or redact data before processing?Event::listen() or listen() in EventServiceProvider.PasskeyObserver::saving()).ShouldQueue interface.PasskeyRegisteredEvent (e.g., notifications, analytics).config/passkeys.php to enable/disable events:
'events' => [
'register_passkey' => true, // Enable PasskeyRegisteredEvent
],
PasskeyRegisteredEvent:
php artisan make:listener HandlePasskeyRegistered
public function handle(PasskeyRegistered $event) {
Log::info('Passkey registered for user', ['user_id' => $event->user->id]);
// Send notification, update analytics, etc.
}
EventServiceProvider:
protected $listen = [
PasskeyRegistered::class => [
HandlePasskeyRegistered::class,
],
];
$this->actingAs($user)
->post('/register-passkey', $data)
->assertSessionHas('passkey_registered'); // Or custom assertion
PasskeyVerifiedEvent if added in future releases).spatie/laravel-activitylog, laravel-notification-channels).config/passkeys.php.PasskeyRegisteredEvent (e.g., logging).spatie/laravel-passkeys for future event-related changes (e.g., new event types).config/passkeys.php settings and listener registration.Event::fake() in tests to isolate event behavior.fail method or queues to isolate failures.config/passkeys.php may break dependent workflows. Validate config changes in staging.How can I help you explore Laravel packages today?