Download the PHP package assghard/laravel-2fa without Composer
On this page you can find all versions of the php package assghard/laravel-2fa. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-2fa
assghard Laravel 2FA - Two Factor Authentication package for Laravel
Protect user accounts with Two-Factor Authentication. Send 2FA verification codes for user via E-mail or SMS provider.
The package is helpful if you don't use Jetstream but need 2FA.
All classes are extendable, so you can extend and override everything and customize and adjust it to the project. There in no certain conception or implementation of 2FA. This package provides only a basic set of useful classes and methods, so you can implement 2FA how you want in way you want
Features:
- Customiation: package includes a set of helpful stuff using for 2FA verification. You can implement them how you want and customize everything. Every class can be extended and overridden
- Resent 2FA code: once per minute
- Flexible config
- Every code is valid for X minutes (
config('2fa.user_code_valid_time')). If user use "Resend" function and recive N codes - every code is valid for X minutes
Requirements
- Laravel 8.x to 9.x
- PHP >= 8.0
Laravel and PHP support
| Laravel version | PHP version | Release | Installation |
|---|---|---|---|
| 10.x | PHP >=8.1 | WIP | composer require assghard/laravel-2fa |
| 8.x to 9.X | PHP >=8.0 | 0.1.2 | composer require assghard/laravel-2fa:0.1.2 |
Package hasn't been tested on older Laravel versions
Installation
Installation and usage
-
Install latest release: run
composer require assghard/laravel-2fa- To install older version run:
composer require assghard/laravel-2fa:VERSION
- To install older version run:
-
Add provider in
config -> app.phpproviders section: -
Publish vendor:
php artisan vendor:publish --provider="Assghard\Laravel2fa\TwoFactorVerificationServiceProvider"That command will add a few files to your project: -
Remenber abount adding variables to
.envnad.env.examplefiles - Run command:
php artisan migrate -
Add stuff to your User model:
- Send a 2FA code after user is successfully logged in.
App\Http\Controllers\Auth\AuthenticatedSessionController
- You will need a Controller:
php artisan make:controller Auth\TwoFactroVerificationAuthController -
Also you will need x3 routes for 2FA verification. Add them to Laravel
auth.phproutes. -
Make a new
2fa_verify_confirmthrottle in projectRouteServiceProvider - Probably, you will need a middleware to check if code is verified.
Run command php artisan make:middleware User2faCodeVerified
If you are going to assign 2FA method to user and user (or Admin) can change the method (in this case remember to create a migration for tfa_method field):
Package components
- Migration stubs
- Translations
- Model
- Enum
- Email and SMS providers
- Traits
- Notification providers
- Flexible config
TODO list:
- Testing
- Refactoring
- Testing
- Add user IP address field to
user_2fa_codestable? Make code is valid only for certain IP address?
Bugs and suggestions
If you find a bug, please open an issue or fork this project and make Pull request
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-2fa with dependencies
laravel/framework Version ^8.0 | ^9.0 | ^10.0
smsapi/php-client Version ^3.0.6