solution-forest / filament-email-2fa
filament-email-2fa
Fund package maintenance!
solution-forest
Requires
- php: ^8.1
- filament/filament: ^3.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
README
Secure Your Filament Applications with Email-Based 2FA
This package seamlessly integrates two-factor authentication (2FA) into your Filament PHP applications using email verification codes. Enhance the security of your user accounts and protect sensitive data.
Key Features:
- Easy Integration: Quickly add 2FA to your Filament projects with minimal configuration.
- Email Verification: Users receive time-sensitive codes via email for secure login.
- Customizable: Tailor the 2FA experience with configurable options (e.g., code expiry time).
- Seamless User Experience: Provides a user-friendly interface for setting up and using 2FA.
How it Works:
- Upon successful login, users are prompted to enter a verification code sent to their email address.
- The package handles code generation, email delivery, and verification logic.
- Once verified, users gain access to the protected Filament panel.
Ideal For:
Filament applications handling sensitive user data. Projects requiring an extra layer of account security. Developers seeking a straightforward 2FA solution.
Installation
You can install the package via composer:
composer require solution-forest/filament-email-2fa
You can publish and run the migrations with:
php artisan vendor:publish --tag="filament-email-2fa-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="filament-email-2fa-config"
Optionally, you can publish the views using
php artisan vendor:publish --tag="filament-email-2fa-views"
This is the contents of the published config file:
return [ 'code_table' => 'filament_email_2fa_codes', 'verify_table' => 'filament_email_2fa_verify', 'code_model' => \Solutionforest\FilamentEmail2fa\Models\TwoFaCode::class, 'verify_model' => \Solutionforest\FilamentEmail2fa\Models\TwoFaVerify::class, 'expiry_time_by_mins' => 10, '2fa_page' => \Solutionforest\FilamentEmail2fa\Pages\TwoFactorAuth::class, 'login_success_page' => \Solutionforest\FilamentEmail2fa\Pages\LoginSuccessPage::class, ];
Adding the plugin to a panel
use Solutionforest\FilamentEmail2fa\FilamentEmail2faPlugin; return $panel // ... ->plugin(FilamentEmail2faPlugin::make());
Preparing your filament user class
Implement the 'RequireTwoFALogin' interface and use the 'HasTwoFALogin' trait
use Solutionforest\FilamentEmail2fa\Interfaces\RequireTwoFALogin; use Solutionforest\FilamentEmail2fa\Trait\HasTwoFALogin; class FilamentUser extends Authenticatable implements FilamentUserContract,RequireTwoFALogin{ use HasTwoFALogin; }