Files
laravel-nuxt-ui-inertia-tem…/app/Services/Auth/TwoFactorChallenge.php

45 lines
1.2 KiB
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 enroll in two-factor authentication.
*/
public function enrollmentRequiredFor(User $user): bool
{
return (bool) config('auth-ui.features.two_factor')
&& (bool) config('auth-ui.features.two_factor_required')
&& ! $user->hasEnabledTwoFactorAuthentication();
}
/**
* 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,
'login.started_at' => now()->timestamp,
]);
$request->session()->regenerate();
return redirect()->route('two-factor.login');
}
}