whyounes / laravel-two-factor-auth
Laravel two factor authentication
Requires
- php: ^5.5.9 || ^7.0
- illuminate/auth: 5.1.* || 5.2.* || 5.3.*
- illuminate/config: 5.1.* || 5.2.* || 5.3.*
- illuminate/database: 5.1.* || 5.2.* || 5.3.*
- illuminate/events: 5.1.* || 5.2.* || 5.3.*
- twilio/sdk: ^5.4
Requires (Dev)
- mockery/mockery: ~0.9.4
- orchestra/testbench: ~3.0
- phpunit/phpunit: ^4.8 || ^5.0
This package is auto-updated.
Last update: 2024-10-29 03:58:49 UTC
README
Two Factor Authentication for Laravel 5.3+
Installation
Add the package to your project using Composer:
composer require whyounes/laravel-two-factor-auth
Publish package assets:
php artisan vendor:publish
Run the migrations:
php artisan migrate
Add it to you providers list:
// config/app.php // ... 'providers' => [ // ... Whyounes\TFAuth\TwoFAProvider::class, };
Add the TFAuthTrait
trait to your user model:
// app/User.php class User extends Authenticatable { use \Whyounes\TFAuth\Models\TFAuthTrait; // ... }
Configurations
There are only two configurations that you can set:
delete_verification_code_after_auth
: Set it totrue
if you want to delete unused verification codes after login.verification_code_length
: How long the verification code is.
Verification Code Sender
By default, the package uses Twilio to send verification codes (SMS and Phone). You can easily change it like this:
use Whyounes\TFAuth\Contracts\VerificationCodeSenderInterface; class MyService implements VerificationCodeSenderInterface { public function sendCodeViaSMS($code, $phone, $message = "Your verification code is %s") { // Send code and return boolean for status } public function sendCodeViaPhone($code, $phone, $message = "Your verification code is %s") { // Send code and return boolean for status } }
Next we should switch implementation in the container:
use Whyounes\TFAuth\Contracts\VerificationCodeSenderInterface; class AppProvider extends ServiceProvider { public function register() { // ... $this->app->bind(VerificationCodeSenderInterface::class, MyService::class); } }
That's it, your new service is going to be used for sending verification codes. If you add a new service implementation, you can submit a new pull request and I'll add it to the package :)
Example
Check this repository for a demo application using the package.