requireLogin(); $db = Database::getInstance(); $user = $auth->getCurrentUser(); $appTitle = $db->getSetting('app_title', 'UniFi Voucher System'); $error = ''; $success = ''; $hasPassword = !empty($user['password_hash']); $totpEnabled = !empty($user['totp_enabled']); // 2FA aktivieren (Code bestaetigen) if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['enable_totp'])) { if (!$auth->validateCsrfToken($_POST['csrf_token'] ?? '')) { $error = 'Ungültiges Sicherheits-Token'; } else { $secret = $_SESSION['totp_setup_secret'] ?? ''; $code = trim($_POST['code'] ?? ''); if ($secret === '') { $error = 'Setup abgelaufen, bitte erneut starten.'; } elseif (!Totp::verify($secret, $code)) { $error = 'Code ungültig. Bitte erneut versuchen.'; } else { $auth->enableTotp($user['id'], $secret); unset($_SESSION['totp_setup_secret']); $totpEnabled = true; $success = 'Zwei-Faktor-Authentifizierung wurde aktiviert.'; } } } // 2FA deaktivieren if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['disable_totp'])) { if (!$auth->validateCsrfToken($_POST['csrf_token'] ?? '')) { $error = 'Ungültiges Sicherheits-Token'; } else { $auth->disableTotp($user['id']); $totpEnabled = false; $success = 'Zwei-Faktor-Authentifizierung wurde deaktiviert.'; } } // Für die Setup-Ansicht ein Secret erzeugen (in Session halten bis bestätigt) $setupSecret = ''; $otpUri = ''; if (!$totpEnabled && $hasPassword) { $setupSecret = $_SESSION['totp_setup_secret'] ?? Totp::generateSecret(); $_SESSION['totp_setup_secret'] = $setupSecret; $otpUri = Totp::provisioningUri($setupSecret, $user['email'], $appTitle); } $csrf = $auth->getCsrfToken(); ?>
Konto: = htmlspecialchars($user['email']) ?>
Ihr Konto meldet sich über Microsoft 365 an. 2FA wird dort in Ihrem Microsoft-Konto verwaltet.
Bei jeder Anmeldung wird zusätzlich ein Code aus Ihrer Authenticator-App abgefragt.