<?php
session_start(); // Inicia la sesión para acceder a los tokens y el código maestro

$canva_invite_link = "https://www.canva.com/brand/join?token=U8rNk1aXIaSRke9SprsKCQ&brandingVariant=edu&referrer=team-invite"; 
// IMPORTANTE: REEMPLAZA ESTO CON EL ENLACE REAL DE TU GRUPO DE CANVA.

$response = ['success' => false, 'message' => 'Acceso denegado.'];

// 1. Verificar que venga de un POST y que tenga el token de Canva
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['canva_token'])) {
    
    // 2. VERIFICAR EL CÓDIGO SECRETO INTRODUCIDO POR EL USUARIO
    if (!isset($_POST['user_entered_code']) || !isset($_SESSION['master_secret_code'])) {
        die('Error de verificación: Faltan datos del código secreto.');
    }

    $user_entered_code = strtoupper($_POST['user_entered_code']); // Convertir a mayúsculas para comparar
    $expected_secret_code = strtoupper($_SESSION['master_secret_code']); // El código que definiste en canva_access.php

    if ($user_entered_code !== $expected_secret_code) {
        die('Código de acceso incorrecto. Por favor, revisa el código que te hemos proporcionado.');
    }

    // 3. Si el código secreto es correcto, proceder con la verificación del token de sesión
    if (isset($_SESSION['canva_access_token']) && isset($_SESSION['canva_token_timestamp'])) {
        // Verifica que el token sea el mismo y que no haya expirado (ej. 5 minutos de validez)
        if ($_POST['canva_token'] === $_SESSION['canva_access_token'] && (time() - $_SESSION['canva_token_timestamp'] < 300)) { // 300 segundos = 5 minutos
            // Invalida todos los tokens y códigos inmediatamente después de usarlo
            unset($_SESSION['canva_access_token']);
            unset($_SESSION['canva_token_timestamp']);
            unset($_SESSION['master_secret_code']); // Limpia también el código maestro de la sesión
            
            // Redirecciona al usuario
            header("Location: " . $canva_invite_link);
            exit;
        } else {
            $response['message'] = 'Token de acceso inválido o expirado. Por favor, recarga la página de acceso.';
        }
    } else {
        $response['message'] = 'No se encontró una sesión válida para el acceso. Por favor, recarga la página de acceso.';
    }
} else {
    $response['message'] = 'Acceso no autorizado. Vuelve a la página principal de acceso.';
}

// Si llega aquí, es que algo falló, muestra el error al usuario.
echo $response['message'];
exit;
?>
