diff --git a/config/lifeonscreen2fa.php b/config/lifeonscreen2fa.php index f6c00ec..2dc1c48 100644 --- a/config/lifeonscreen2fa.php +++ b/config/lifeonscreen2fa.php @@ -1,10 +1,38 @@ env('GOOGLE_2FA_ENABLED', true), + 'models' => [ + /** + * Change this variable to your User model. + */ 'user' => 'App\User', ], 'tables' => [ + /** + * Table in witch 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, + ], ]; \ No newline at end of file diff --git a/src/Google2fa.php b/src/Google2fa.php index 2e819ee..990589a 100644 --- a/src/Google2fa.php +++ b/src/Google2fa.php @@ -101,10 +101,10 @@ public function authenticate() $google2fa = new G2fa(); $recovery = new Recovery(); $secretKey = $google2fa->generateSecretKey(); - $data['recovery'] = $recovery = $recovery - ->setCount(8) - ->setBlocks(3) - ->setChars(16) + $data['recovery'] = $recovery + ->setCount(config('lifeonscreen2fa.recovery_codes.count')) + ->setBlocks(config('lifeonscreen2fa.recovery_codes.blocks')) + ->setChars(config('lifeonscreen2fa.recovery_codes.chars_in_block')) ->toArray(); User2fa::where('user_id', auth()->user()->id)->delete(); diff --git a/src/Http/Middleware/Google2fa.php b/src/Http/Middleware/Google2fa.php index 7cd31cc..635be09 100644 --- a/src/Http/Middleware/Google2fa.php +++ b/src/Http/Middleware/Google2fa.php @@ -24,6 +24,9 @@ class Google2fa */ public function handle($request, Closure $next) { + if (!config('lifeonscreen2fa.enabled')) { + return $next($request); + } if ($request->path() === 'los/2fa/confirm' || $request->path() === 'los/2fa/authenticate' || $request->path() === 'los/2fa/register') { return $next($request); @@ -37,10 +40,10 @@ public function handle($request, Closure $next) $google2fa = new G2fa(); $recovery = new Recovery(); $secretKey = $google2fa->generateSecretKey(); - $data['recovery'] = $recovery = $recovery - ->setCount(8) - ->setBlocks(3) - ->setChars(16) + $data['recovery'] = $recovery + ->setCount(config('lifeonscreen2fa.recovery_codes.count')) + ->setBlocks(config('lifeonscreen2fa.recovery_codes.blocks')) + ->setChars(config('lifeonscreen2fa.recovery_codes.chars_in_block')) ->toArray(); User2fa::where('user_id', auth()->user()->id)->delete();