software:linux_server_iso:installer:api:2fa.php
2fa.php
- 2fa.php
<?php // 1. Полностью отключаем дисковое кэширование библиотеки QR define('QR_CACHEABLE', false); ob_start(); // Жестко привязываем абсолютный путь к qrlib.php через __DIR__ $lib_path = __DIR__ . '/qrlib.php'; if (!file_exists($lib_path)) { ob_end_clean(); header('HTTP/1.1 500 Internal Server Error'); header('Content-Type: application/json'); echo json_encode(['error' => 'Файл qrlib.php не найден в каталоге api/']); exit; } // Подключаем библиотеку include_once $lib_path; // 2. ПРИНИМАЕМ ПАРАМЕТРЫ ИЗ ФОРМЫ (Если пусто — ставим заводские значения) $company = isset($_GET['hostname']) && !empty($_GET['hostname']) ? trim($_GET['hostname']) : "Arch-Server"; $user = isset($_GET['username']) && !empty($_GET['username']) ? trim($_GET['username']) : "eva"; $secret = 'SECRETKEY1234567'; // Ваш мастер-ключ // Формируем ссылку по международному стандарту TOTP с динамическими данными $otpauth_url = "otpauth://totp/" . rawurlencode($company) . ":" . rawurlencode($user) . "?secret=" . $secret . "&issuer=" . rawurlencode($company); // Стираем любые предупреждения или случайные пробелы до этого момента if (ob_get_length()) ob_end_clean(); // Отдаем чистый заголовок картинки header('Content-Type: image/png'); header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); header('Pragma: no-cache'); // 3. ГЕНЕРИРУЕМ QR-КОД НАПРЯМУЮ В ПАМЯТЬ (БЕЗ КЭША НА ДИСКЕ) // Пятый параметр (размер пикселя) = 5, шестой параметр (размер рамки) = 2, седьмой (кэш) = false QRcode::png($otpauth_url, false, QR_ECLEVEL_L, 5, 2, false); exit;
Только авторизованные участники могут оставлять комментарии.
software/linux_server_iso/installer/api/2fa.php.txt · Последнее изменение: — 127.0.0.1
