Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Passkeys

Filament Passkeys Laravel Package

marcelweidum/filament-passkeys

Add passkey login to Filament v5 panels using Laravel's native passkeys package. Install via Composer, add the PasskeyUser interface and trait to your model, publish and run migrations, and passkey routes register automatically.

View on GitHub
Deep Wiki
Context7

Filament Passkeys adds passwordless, WebAuthn-based passkey login to your Filament panel. The current 4.x release is built on Laravel's native laravel/passkeys package, letting users sign in with Face ID, Touch ID, or a hardware security key instead of a password. Setup takes minutes: require the package, add the PasskeyUser contract and PasskeyAuthenticatable trait to your User model, then publish and run the migrations. Laravel registers the passkey routes automatically.

  • Filament v5 support in 4.x; Filament v3/v4 via the 2.x branch
  • Laravel-native passkey backend with automatic route registration
  • Model integration through a single contract and trait
  • Publishable migrations and optional Laravel passkeys config
  • Actively maintained with code-style CI and Packagist releases
Frequently asked questions about Filament Passkeys
How do I install filament-passkeys in a Laravel Filament v5 app?
Install the package with composer require marcelweidum/filament-passkeys. Add Laravel\Passkeys\Contracts\PasskeyUser and the PasskeyAuthenticatable trait to your User model, then publish and run the passkeys migrations using php artisan vendor:publish --tag="passkeys-migrations" and php artisan migrate. Laravel registers the passkey routes automatically, so no route file edits are required. Finally, register the Filament plugin in your panel provider and make sure the panel profile page is enabled.
Which Filament and Laravel versions does filament-passkeys support?
Package 4.x targets Filament v5 and uses Laravel's native passkeys package. Package 3.x also targets Filament v5 but stays on the older Spatie-backed implementation, while 2.x covers Filament v3 and v4 with Spatie passkeys. If your panels are split across Filament majors, pin the package version per application rather than assuming one branch works everywhere.
Does filament-passkeys use Laravel's native passkeys or spatie/laravel-passkeys?
The current 4.x line uses Laravel's native laravel/passkeys package. Earlier lines, including 3.x for Filament v5 and 2.x for Filament v3 and v4, are backed by spatie/laravel-passkeys. Check your installed package version before following Spatie-specific migration or configuration instructions.
How do I enable passkey login on a Filament panel?
Register PasskeysPlugin::make() in your Filament panel provider and confirm that the panel's profile page is enabled with ->profile(). The package contributes the panel plugin, profile-page passkey management UI, translations, and a small asset bundle, while Laravel or Spatie owns the WebAuthn ceremony underneath. Once registered, users can sign in with Face ID, Touch ID, or a hardware security key.
Can users add or remove passkeys from their Filament profile page?
Yes. The plugin adds a profile-page management interface where users can register and delete their passkeys. Make sure ->profile() is enabled on the panel, otherwise the UI has nowhere to render. If you use a custom-built Profile page rather than Filament's default, verify the render hook works on your pinned version and test registration and deletion in staging.
Are passkeys a replacement for passwords, and what is the account recovery flow?
The README describes passkey registration and sign-in but does not define whether passkeys are additive or intended as the sole factor. Decide that policy before launch because it drives your break-glass design. For most admin panels, keep Filament's password login and password reset available as a fallback, and define an admin-initiated reset or helpdesk process for users who lose all registered devices.
Why do I get a WebAuthn RP ID or origin error with passkeys in Filament?
Most failures happen when APP_URL does not exactly match the browser's origin, including scheme, host, and port. The package's common-problems documentation is essentially a single note about APP_URL, so validate this first. Use HTTPS in production and keep the admin hostname stable, because changing the domain or subdomain invalidates every credential registered under the old relying party ID.
Do passkeys work with multiple Filament panels or multiple domains?
WebAuthn scopes credentials to a relying party ID tied to the origin, so each panel hostname needs deliberate configuration. Multiple panels or domains should be tested per origin rather than assumed to share credentials. Changing the admin domain, subdomain, or panel hostname later will invalidate existing registered passkeys, so plan hostnames before rollout.
Does filament-passkeys work with Filament two-factor authentication and custom login flows?
The README does not document how passkey sign-in composes with Filament's email two-factor authentication or app authentication, so treat that as manual integration work. The package ships an authenticate-passkey Livewire component for its sign-in path, but custom login flows outside that component need to be wired yourself. If you use a custom Profile page, pin a version that includes the render hook fix and retest the UI on upgrade.
Is marcelweidum/filament-passkeys production ready and actively maintained?
The package is a deliberately thin adapter, so the risky WebAuthn protocol work sits with Laravel's native passkeys or Spatie upstream rather than this package. However, it has a single maintainer and a small install base, and its release history is largely dependency bumps and small fixes, so you may be among the earliest production users. Pin a specific version, review the plugin and Livewire components, and validate registration, sign-in, deletion, and recovery in staging before relying on it.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections