Инструменты пользователя

Инструменты сайта


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

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki