https://github.com/gabrielesbaiz/nova-two-factor
Laravel nova in-dashboard 2FA feature.
https://github.com/gabrielesbaiz/nova-two-factor
laravel-nova-tool php
Last synced: 3 months ago
JSON representation
Laravel nova in-dashboard 2FA feature.
- Host: GitHub
- URL: https://github.com/gabrielesbaiz/nova-two-factor
- Owner: gabrielesbaiz
- License: mit
- Created: 2025-03-04T04:26:05.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-04T05:42:00.000Z (3 months ago)
- Last Synced: 2025-03-16T02:18:52.542Z (3 months ago)
- Topics: laravel-nova-tool, php
- Language: PHP
- Homepage:
- Size: 146 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# NovaTwoFactor
[](https://packagist.org/packages/gabrielesbaiz/nova-two-factor)
[](https://packagist.org/packages/gabrielesbaiz/nova-two-factor)Laravel nova in-dashboard 2FA feature.
Original code from [Visanduma/nova-two-factor](https://github.com/Visanduma/nova-two-factor)
## Features
- ✅ Global enable / disable
- ✅ Mandatory / Not mandatory
- ✅ Google 2FA encrypted
- ✅ BancodeQrCode / Google API## Installation
You can install the package via composer:
```bash
composer require gabrielesbaiz/nova-two-factor
```You can publish and run the migrations with:
```bash
php artisan vendor:publish --tag="nova-two-factor-migrations"
php artisan migrate
```You can publish the config file with:
```bash
php artisan vendor:publish --tag="nova-two-factor-config"
```This is the contents of the published config file:
```php
return [
'enabled' => env('NOVA_TWO_FA_ENABLE', true),'mandatory' => env('NOVA_TWO_FA_MANDATORY', false),
'user_table' => 'users',
'user_id_column' => 'id',
'connection_name' => env('DB_CONNECTION'),
/* Encrypt the google secret values saved in database */
'encrypt_google2fa_secrets' => false,/* QR code can be generate using Google API or inbuilt 'BaconQrCode' package */
'use_google_qr_code_api' => true,'user_model' => App\Models\User::class,
/* Change visibility of Nova Two Fa menu in right sidebar */
'showin_sidebar' => true,'menu_text' => 'Two FA',
'menu_icon' => 'lock-closed',
/* Exclude any routes from 2fa security */
'except_routes' => [],/*
* reauthorize these urls before access, within given timeout
* you are allowed to use wildcards pattern for url matching
*/
'reauthorize_urls' => [
// 'nova/resources/users/new',
// 'nova/resources/users/*/edit',
],/* timeout in minutes */
'reauthorize_timeout' => 5,
];
```## Usage
1. Pubish config & migration
2. Use ProtectWith2FA trait in configured model
```php
namespace App\Models;
use Gabrielesbaiz\NovaTwoFactor\ProtectWith2FA;
class User extends Authenticatable{
use ProtectWith2FA;
}
```3. Add TwoFa middleware to nova config file
```php
/*
|--------------------------------------------------------------------------
| Nova Route Middleware
|--------------------------------------------------------------------------
|
| These middleware will be assigned to every Nova route, giving you the
| chance to add your own middleware to this stack or override any of
| the existing middleware. Or, you can just stick with this stack.
|
*/'middleware' => [
...
\Gabrielesbaiz\NovaTwoFactor\Http\Middleware\TwoFa::class
],```
4. Register NovaTwoFactor tool in Nova Service Provider
```php