34 lines
851 B
PHP
34 lines
851 B
PHP
<?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');
|
|
}
|
|
}
|