feat: add two-factor authentication support and related configurations
This commit is contained in:
33
app/Services/Auth/TwoFactorChallenge.php
Normal file
33
app/Services/Auth/TwoFactorChallenge.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Auth;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TwoFactorChallenge
|
||||
{
|
||||
/**
|
||||
* Determine whether the user must complete a two-factor challenge.
|
||||
*/
|
||||
public function requiredFor(User $user): bool
|
||||
{
|
||||
return (bool) config('auth-ui.features.two_factor')
|
||||
&& $user->hasEnabledTwoFactorAuthentication();
|
||||
}
|
||||
|
||||
/**
|
||||
* Begin a two-factor challenge without authenticating the user.
|
||||
*/
|
||||
public function begin(Request $request, User $user, bool $remember = false): RedirectResponse
|
||||
{
|
||||
$request->session()->put([
|
||||
'login.id' => $user->getKey(),
|
||||
'login.remember' => $remember,
|
||||
]);
|
||||
$request->session()->regenerate();
|
||||
|
||||
return redirect()->route('two-factor.login');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user