prepare(" INSERT INTO users (name, email, password_hash, role, two_factor_secret, two_factor_enabled, backup_codes) VALUES (?, ?, ?, 'ADMIN', ?, 1, ?) "); $stmt->execute([ $name, $email, $passwordHash, $secret, json_encode($backupCodes) ]); $adminId = (int)$db->lastInsertId(); // Automatische dagsessie starten (geldig tot 23:59:59) $_SESSION['user_id'] = $adminId; $_SESSION['user_name'] = $name; $_SESSION['user_email'] = $email; $_SESSION['user_role'] = 'ADMIN'; $_SESSION['is_2fa_verified'] = true; $_SESSION['auth_date'] = date('Y-m-d'); $_SESSION['session_expires_at'] = strtotime('today 23:59:59'); clear_remember_cookie(); unset($_SESSION['setup_totp_secret']); fociz_log_audit($adminId, 'INITIAL_ADMIN_SETUP', 'user', $adminId, ['email' => $email, 'name' => $name], 'SUCCESS', $email); $success = true; } catch (Exception $e) { $error = "Fout bij aanmaken beheerder in MariaDB: " . $e->getMessage(); } } } $otpAuthUrl = TOTP::getOtpAuthUrl(!empty($email) ? $email : 'admin@fociz.local', $secret, 'Fociz'); $qrCodeUrl = TOTP::getQrCodeUrl($otpAuthUrl, 200); $pageTitle = "Fociz — Eerste Initialisatie"; ?>
Eenmalige configuratie van het hoofdbeheerdersaccount met verplichte 2FA
Uw account is aangemaakt en direct beveiligd met 2FA. Bewaar deze eenmalige herstelcodes veilig: