lifeonscreen / nova-google2fa
This package provides Google2FA to Laravel Nova.
v1.0.1
2018-11-28 13:32 UTC
Requires
- php: >=7.1.0
- bacon/bacon-qr-code: ^2.0
- pragmarx/google2fa-laravel: ^0.2.0
- pragmarx/recovery: ^0.1.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
This package enforces 2FA for Laravel Nova.
Upgrade from 0.0.7 to 1.0.0
Upgrade guide is available Here.
Flow
Activation
- User gets recovery codes.
- User activates 2FA on his device.
Verification
- User verifies login with 2FA.
Recovery
- If user enters invalid code, recovery button is shown.
- User enters recovery code.
- User is redirected to activation process.
Installation
Install via composer
$ composer require lifeonscreen/nova-google2fa
Publish config and migrations
$ php artisan vendor:publish --provider="Lifeonscreen\Google2fa\ToolServiceProvider"
Run migrations
$ php artisan migrate
Add relation to User model
use Lifeonscreen\Google2fa\Models\User2fa; ... /** * @return HasOne */ public function user2fa(): HasOne { return $this->hasOne(User2fa::class); }
Add middleware to nova.config.
[
...
'middleware' => [
...
\Lifeonscreen\Google2fa\Http\Middleware\Google2fa::class,
...
],
]
Config
return [ /** * Disable or enable middleware. */ 'enabled' => env('GOOGLE_2FA_ENABLED', true), 'models' => [ /** * Change this variable to path to user model. */ 'user' => 'App\User', /** * Change this if you need a custom connector */ 'user2fa' => User2fa::class, ], 'tables' => [ /** * Table in which users are stored. */ 'user' => 'users', ], 'recovery_codes' => [ /** * Number of recovery codes that will be generated. */ 'count' => 8, /** * Number of blocks in each recovery code. */ 'blocks' => 3, /** * Number of characters in each block in recovery code. */ 'chars_in_block' => 16, /** * The following algorithms are currently supported: * - PASSWORD_DEFAULT * - PASSWORD_BCRYPT * - PASSWORD_ARGON2I // available from php 7.2 */ 'hashing_algorithm' => PASSWORD_BCRYPT, ], ];
Security
If you discover any security-related issues, please email the author instead of using the issue tracker.
Credits
License
MIT license. Please see the license file for more information.




