A Two Factor Authentication plugin for Filament
- Install the package via composer (requires filament >= 2.10.40)
composer require webbingbrasil/filament-2fa
- Publish assets and run migrations
php artisan vendor:publish --tag="filament-2fa-migrations"
php artisan migrate
Optionally, you can publish config or views:
php artisan vendor:publish --tag="filament-2fa-config"
php artisan vendor:publish --tag="filament-2fa-views"
-
Add
\Webbingbrasil\FilamentTwoFactor\TwoFactorAuthenticatable
trait to your user model. -
Update the
config/filament.php
to point to the Two Factor Login::class.
"auth" => [
"guard" => env("FILAMENT_AUTH_GUARD", "web"),
"pages" => [
"login" =>
\Webbingbrasil\FilamentTwoFactor\Http\Livewire\Auth\Login::class,
],
],
This package has a component for two-factor setup that can be easily added to a profile page, like the one for filament-jetstream-theme.
Create a view with the <livewire:filament-two-factor-form>
component like the example below:
// resources/views/partials/2fa-section.blade.php
<hr />
<x-filament-jetstream::grid-section class="mt-8">
<x-slot name="title">
{{ __('filament-2fa::two-factor.title') }}
</x-slot>
<x-slot name="description">
{{ __('filament-2fa::two-factor.description') }}
</x-slot>
<div class="space-y-3">
<x-filament::card>
<livewire:filament-two-factor-form>
</x-filament::card>
</div>
</x-filament-jetstream::grid-section>
Then add the view to your profile page using render hook:
## in Service Provider file
public function boot()
{
Filament::registerRenderHook(
'filament-jetstream.profile-page.end',
fn (): View => view('partials.2fa-section'),
);
}
The MIT License (MIT). Please see License File for more information.