Skip to content

Commit 8816bbf

Browse files
committed
Little Refactoration of codebase.
1 parent 4393f11 commit 8816bbf

File tree

4 files changed

+41
-20
lines changed

4 files changed

+41
-20
lines changed

config/2fa-config.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
/*
1212
* Routes
1313
* Change the routes if your existing routes
14-
* conflicts with existing routes.
14+
* conflicts with existing routes. or for
15+
* any customization.
1516
*/
1617
'setup_2fa' => 'setup-2fa',
1718
'enable_2fa' => 'enable-2fa',

src/AuthenticatesUsersWith2FA.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ protected function authenticated(Request $request, $user)
4747
*/
4848
public function verifyToken(Request $request)
4949
{
50-
$userModel = TwoFactorAuthenticationServiceProvider::getUserModelInstance();
50+
$TwoFAModel = TwoFactorAuthenticationServiceProvider::getTwoFAModelInstance();
5151
// Pulling encrypted user id from session and getting user details
5252
$userId = $request->session()->get('2fa:user:id');
53-
$this->user = $userModel->find(decrypt($userId));
53+
$this->user = $TwoFAModel->find(decrypt($userId));
5454

5555
// If token is not valid then custom validation error message will be shown.
5656
$messages = [
@@ -87,4 +87,14 @@ public function verifyToken(Request $request)
8787

8888
return redirect()->intended(config('2fa-config.redirect_to'));
8989
}
90+
91+
public function setUser($user)
92+
{
93+
$this->user = $user;
94+
}
95+
96+
public function getUser()
97+
{
98+
return $this->user;
99+
}
90100
}

src/Http/Controllers/TwoFactorAuthenticationController.php

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,19 @@ class TwoFactorAuthenticationController extends Controller implements TwoFactorA
1919
/**
2020
* User Model.
2121
*/
22-
protected $userModel;
22+
protected $TwoFAModel;
2323

2424
/**
2525
* Assigns $usersModel Property a Model instance.
2626
*/
2727
public function __construct()
2828
{
29-
$this->userModel = TwoFactorAuthenticationServiceProvider::getUserModelInstance();
29+
$this->TwoFAModel = TwoFactorAuthenticationServiceProvider::getTwoFAModelInstance();
30+
31+
$this->middleware(function ($request, $next) {
32+
$this->setUser(auth()->user());
33+
return $next($request);
34+
});
3035
}
3136

3237
/**
@@ -39,14 +44,8 @@ public function __construct()
3944
*/
4045
public function setupTwoFactorAuthentication(Request $request)
4146
{
42-
$user = $this->userModel->find($request->user()->id);
43-
if (!Schema::hasColumn(config('2fa-config.table'), 'two_factor_secret_key') ||
44-
!Schema::hasColumn(config('2fa-config.table'), 'is_two_factor_enabled')) {
45-
throw TwoFactorAuthenticationExceptions::columnNotFound();
46-
}
47-
$user->two_factor_secret_key = $user->two_factor_secret_key ?? $this->base32EncodedString(config('2fa-config.number_of_digits'));
48-
$user->update();
49-
47+
$this->updateUserWith2FAGeneratedKey();
48+
$user = $this->getUser();
5049
$totp = new TOTP(
5150
config('2fa-config.account_name'),
5251
$user->two_factor_secret_key,
@@ -74,7 +73,7 @@ public function setupTwoFactorAuthentication(Request $request)
7473
*/
7574
public function enableTwoFactorAuthentication(Request $request)
7675
{
77-
$user = $this->userModel->find($request->user()->id);
76+
$user = $this->TwoFAModel->find($request->user()->id);
7877
$user->is_two_factor_enabled = 1;
7978
$user->update();
8079

@@ -99,7 +98,7 @@ public function enableTwoFactorAuthentication(Request $request)
9998
*/
10099
public function disableTwoFactorAuthentication(Request $request)
101100
{
102-
$user = $this->userModel->find($request->user()->id);
101+
$user = $this->TwoFAModel->find($request->user()->id);
103102
$user->is_two_factor_enabled = 0;
104103
$user->two_factor_secret_key = null;
105104
$user->update();
@@ -134,7 +133,7 @@ public function verifyTwoFactorAuthentication(Request $request)
134133
return view('2fa::verify');
135134
}
136135

137-
return redirect()->back(); //shoud be configurabel
136+
return redirect()->back(); //shoud be configurable
138137
}
139138

140139
/**
@@ -172,4 +171,15 @@ private function strRandom($length = 30):
172171

173172
return $string;
174173
}
174+
175+
private function updateUserWith2FAGeneratedKey()
176+
{
177+
$user = $this->TwoFAModel->find($this->getUser()->id);
178+
if (!Schema::hasColumn(config('2fa-config.table'), 'two_factor_secret_key') ||
179+
!Schema::hasColumn(config('2fa-config.table'), 'is_two_factor_enabled')) {
180+
throw TwoFactorAuthenticationExceptions::columnNotFound();
181+
}
182+
$user->two_factor_secret_key = $user->two_factor_secret_key ?? $this->base32EncodedString(config('2fa-config.number_of_digits'));
183+
$user->update();
184+
}
175185
}

src/TwoFactorAuthenticationServiceProvider.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function boot()
4040
*
4141
* @return string
4242
*/
43-
public static function determineUserModel(): string
43+
public static function determineTwoFAModel(): string
4444
{
4545
return config('2fa-config.model');
4646
}
@@ -50,10 +50,10 @@ public static function determineUserModel(): string
5050
*
5151
* @return \Illuminate\Database\Eloquent\Model
5252
*/
53-
public static function getUserModelInstance(): Model
53+
public static function getTwoFAModelInstance(): Model
5454
{
55-
$userModelClassName = self::determineUserModel();
55+
$TwoFAModelClassName = self::determineTwoFAModel();
5656

57-
return new $userModelClassName();
57+
return new $TwoFAModelClassName();
5858
}
5959
}

0 commit comments

Comments
 (0)