https://github.com/solutionforest/filament-email-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.
https://github.com/solutionforest/filament-email-2fa
2fa 2fa-security 2factor cms filament-plugin filamentphp filamentphp-plugin laravel
Last synced: 5 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/solutionforest/filament-email-2fa
- Owner: solutionforest
- License: mit
- Created: 2024-03-20T08:32:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-17T15:57:12.000Z (10 months ago)
- Last Synced: 2024-12-15T21:08:53.052Z (5 months ago)
- Topics: 2fa, 2fa-security, 2factor, cms, filament-plugin, filamentphp, filamentphp-plugin, laravel
- Language: PHP
- Homepage:
- Size: 56.6 KB
- Stars: 18
- Watchers: 1
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# filament-email-2fa
[](https://packagist.org/packages/solution-forest/filament-email-2fa)
[](https://github.com/solution-forest/filament-email-2fa/actions?query=workflow%3Arun-tests+branch%3Amain)
[](https://github.com/solution-forest/filament-email-2fa/actions?query=workflow%3A"Fix+PHP+code+styling"+branch%3Amain)
[](https://packagist.org/packages/solution-forest/filament-email-2fa)## 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:
```bash
composer require solution-forest/filament-email-2fa
```You can publish and run the migrations with:
```bash
php artisan vendor:publish --tag="filament-email-2fa-migrations"
php artisan migrate
```You can publish the config file with:
```bash
php artisan vendor:publish --tag="filament-email-2fa-config"
```Optionally, you can publish the views using
```bash
php artisan vendor:publish --tag="filament-email-2fa-views"
```This is the contents of the published config file:
```php
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
```php
use Solutionforest\FilamentEmail2fa\FilamentEmail2faPlugin;return $panel
// ...
->plugin(FilamentEmail2faPlugin::make());
```## Preparing your filament user class
Implement the 'RequireTwoFALogin' interface and use the 'HasTwoFALogin' trait
```php
use Solutionforest\FilamentEmail2fa\Interfaces\RequireTwoFALogin;
use Solutionforest\FilamentEmail2fa\Trait\HasTwoFALogin;class FilamentUser extends Authenticatable implements FilamentUserContract,RequireTwoFALogin{
use HasTwoFALogin;
}
```