Skip to content

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.

License

Notifications You must be signed in to change notification settings

solutionforest/filament-email-2fa

Repository files navigation

filament-email-2fa

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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.

image

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;
}

About

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.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages