У меня есть промежуточное программное обеспечение, которое проверяет, вошел ли пользователь в систему, если он не перенаправляется на страницу двухфакторного вызова.
Код: Выделить всё
public function handle(Request $request, Closure $next)
{
$user = $request->user();
// Benutzer nicht eingeloggt? Weiterleitung zum Login
if (!$user) {
return redirect()->route('login');
}
// 2FA nicht aktiviert? Weiterleitung zum nächsten Schritt
if (!$user->two_factor_enabled) {
return $next($request);
}
// Weiterleitung zur Two-Factor-Challenge
return redirect()->route('two-factor.challenge');
}
Код: Выделить всё
Route::get('/two-factor-challenge', [TwoFactorAuthenticatedSessionController::class, 'create'])
->name('two-factor.challenge');
Код: Выделить всё
public function setup2FAMethode(Request $request)
{
$request->validate([
'totp_methode' => 'in:totp,sms,email',
]);
if ($request->session()->get('two_factor_authenticated')) {
return redirect()->route('dashboard');
}
switch ($request->input('totp_methode')) {
case 'sms':
// Logik für SMS
return redirect()->route('two-factor.challenge');
case 'totp':
// Redirect auf die Two-Factor-Challenge-Seite
return redirect()->route('two-factor.challenge');
case 'email':
// Logik für E-Mail
return redirect()->route('two-factor.challenge');
default:
return redirect()->route('setup');
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -challenge
Мобильная версия