PHPackages                             adriaanzon/filament-passkeys - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. adriaanzon/filament-passkeys

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

adriaanzon/filament-passkeys
============================

Passkeys for Filament using laravel/passkeys

v0.2.2(1mo ago)12.0k↑91.7%MITPHPPHP ^8.2CI passing

Since May 16Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/adriaanzon/filament-passkeys)[ Packagist](https://packagist.org/packages/adriaanzon/filament-passkeys)[ Docs](https://github.com/adriaanzon/filament-passkeys)[ RSS](/packages/adriaanzon-filament-passkeys/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (4)Dependencies (11)Versions (8)Used By (0)

Passkeys for Filament
=====================

[](#passkeys-for-filament)

A Filament v5 panel plugin for passkey/WebAuthn authentication. Use passkeys as a second factor, as a passwordless sign-in option on the login page, or both. Users register passkeys (fingerprint, face, device PIN, security key) from their profile page. Built on top of [`laravel/passkeys`](https://github.com/laravel/passkeys-server).

Installation
------------

[](#installation)

1. Install the package via Composer:

    ```
    composer require adriaanzon/filament-passkeys
    ```
2. Publish and run the [`laravel/passkeys`](https://github.com/laravel/passkeys-server) migration:

    ```
    php artisan vendor:publish --tag="passkeys-migrations"
    php artisan migrate
    ```
3. Add the `PasskeyUser` contract and `PasskeyAuthenticatable` trait to your user model:

    ```
    use Filament\Models\Contracts\FilamentUser;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Laravel\Passkeys\Contracts\PasskeyUser;
    use Laravel\Passkeys\PasskeyAuthenticatable;

    class User extends Authenticatable implements FilamentUser, PasskeyUser
    {
        use PasskeyAuthenticatable;

        // ...
    }
    ```
4. Register the plugin on your panel. See [Configuration](#configuration) for all available modes.

    ```
    use AdriaanZon\FilamentPasskeys\FilamentPasskeysPlugin;
    use AdriaanZon\FilamentPasskeys\PasskeyAuthentication;

    public function panel(Panel $panel): Panel
    {
        return $panel
            ->login()
            ->profile()
            // ...
            ->plugins([
                FilamentPasskeysPlugin::make()->passwordlessLogin(),
            ])
            ->multiFactorAuthentication([
                PasskeyAuthentication::make()->managementOnly(),
            ]);
    }
    ```

Configuration
-------------

[](#configuration)

This plugin supports the following setups:

- [Passwordless sign-in only](#passwordless-sign-in-only)
- [Passkey MFA](#passkey-mfa)
- [Passwordless sign-in + passkey MFA](#passwordless-sign-in--passkey-mfa)

### Passwordless sign-in only

[](#passwordless-sign-in-only)

A "Sign in with passkey" button + browser autofill on the login page, with passkeys excluded from Filament's MFA challenge.

Users can register and manage passkeys from their profile page. The `->managementOnly()` setting keeps that UI intact while skipping the MFA challenge step.

```
->plugins([
    FilamentPasskeysPlugin::make()->passwordlessLogin(),
])
->multiFactorAuthentication([
    PasskeyAuthentication::make()->managementOnly(),
]);
```

### Passkey MFA

[](#passkey-mfa)

If you'd rather use passkeys as a second factor on top of password login (and not enable passwordless sign-in), drop both `->passwordlessLogin()` and `->managementOnly()`:

```
->plugins([
    FilamentPasskeysPlugin::make(),
])
->multiFactorAuthentication([
    PasskeyAuthentication::make(),
])
```

#### Fallback MFA method

[](#fallback-mfa-method)

Without a usable passkey, users cannot get past the MFA challenge and would be locked out. Pair `PasskeyAuthentication` with one of Filament's built-in providers like [`EmailAuthentication`](https://filamentphp.com/docs/5.x/users/multi-factor-authentication#email-authentication) so they can still sign in:

```
use Filament\Auth\MultiFactor\Email\EmailAuthentication;

->multiFactorAuthentication([
    PasskeyAuthentication::make(),
    EmailAuthentication::make(),
])
```

### Passwordless sign-in + passkey MFA

[](#passwordless-sign-in--passkey-mfa)

To use passkeys as both a login option and an MFA factor for password sign-ins, enable passwordless sign-in *without* `->managementOnly()`:

```
->plugins([
    FilamentPasskeysPlugin::make()->passwordlessLogin(),
])
->multiFactorAuthentication([
    PasskeyAuthentication::make(),
])
```

WebAuthn configuration
----------------------

[](#webauthn-configuration)

WebAuthn settings (relying party ID, allowed origins, user handle secret, timeout, throttling) live in [`laravel/passkeys`](https://github.com/laravel/passkeys-server)'s config. Publish it with:

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

The `passkeys.throttle` value is applied to every passkey endpoint this plugin registers (defaults to `throttle:6,1`).

Changelog
---------

[](#changelog)

Please see the [releases](https://github.com/adriaanzon/filament-passkeys/releases) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](.github/SECURITY.md) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Adriaan Zonnenberg](https://github.com/adriaanzon)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance90

Actively maintained with recent releases

Popularity24

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 82.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

4

Last Release

57d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/65df263492fa4aa89e3647a9dd279dfbb4c52e2e9ccb170b8cfbd3943b6435d5?d=identicon)[adriaanzon](/maintainers/adriaanzon)

---

Top Contributors

[![adriaanzon](https://avatars.githubusercontent.com/u/4326420?v=4)](https://github.com/adriaanzon "adriaanzon (23 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (4 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

laravelwebauthnfilamentfilament-pluginfilamentphpfortifyfilament-passkeysadriaanzon

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/adriaanzon-filament-passkeys/health.svg)

```
[![Health](https://phpackages.com/badges/adriaanzon-filament-passkeys/health.svg)](https://phpackages.com/packages/adriaanzon-filament-passkeys)
```

###  Alternatives

[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

6649.5k2](/packages/marcelweidum-filament-passkeys)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[stephenjude/filament-two-factor-authentication

Filament Two Factor Authentication: Google 2FA + Passkey Authentication

84215.9k9](/packages/stephenjude-filament-two-factor-authentication)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16121.5k](/packages/backstage-mails)[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

274333.4k9](/packages/croustibat-filament-jobs-monitor)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17760.2k3](/packages/stephenjude-filament-jetstream)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
