<?php
ob_start();
header('Content-Type: application/json');
require_once '../config.php';

// 不强制要求登录（登录页也需要生成二维码）
$user = currentUser();
$user_id = $user ? $user['id'] : 0;

// 生成唯一 token
$token = bin2hex(random_bytes(32));
$expire = date('Y-m-d H:i:s', strtotime('+5 minutes'));
$ip = getClientIP();

// 获取分站标识
$site_id = defined('SITE_ID') ? SITE_ID : '';
$site_url = defined('SITE_URL') ? SITE_URL : '';

// 存入数据库（包含生成者ID和分站信息）
$db->query("INSERT INTO login_qrcodes (token, generate_user_id, scan_ip, site_id, site_url, expire_at) 
            VALUES ('$token', $user_id, '$ip', '$site_id', '$site_url', '$expire')");

// 判断请求来源：如果是 App 内调用，返回 App scheme；否则返回网页版二维码
$isApp = strpos($_SERVER['HTTP_USER_AGENT'] ?? '', 'YourAppName') !== false; // 替换为你的 App User-Agent

if ($isApp) {
    // App 内扫码，返回 App scheme
    $qrcode_data = json_encode([
        'action' => 'login',
        'site_id' => $site_id,
        'site_url' => $site_url,
        'token' => $token
    ]);
    $qrcode_url = 'lhapp://login?data=' . urlencode(base64_encode($qrcode_data));
} else {
    // 普通网页扫码，返回网页版确认页
    $qrcode_url = SITE_URL . 'modules/home/qrcode_scan.php?token=' . $token;
}

echo json_encode([
    'code' => 0,
    'token' => $token,
    'expire' => 300,
    'qrcode_url' => $qrcode_url
]);
exit;