AAL · Portal interno

Acceso denegado

{$safe}

Volver al inicio
HTML; exit; } $state = $_GET['state'] ?? ''; if (!is_string($state) || !Auth::checkState($state)) { deny('Token de seguridad inválido o expirado. Intenta iniciar sesión de nuevo.'); } $code = $_GET['code'] ?? ''; if (!is_string($code) || $code === '') { $err = $_GET['error_description'] ?? $_GET['error'] ?? 'Autorización cancelada.'; deny((string)$err); } $tokenResp = Oauth::exchangeCodeForToken($code); if (empty($tokenResp['access_token'])) { deny('No se pudo obtener el token de acceso. Reintenta más tarde.'); } $profile = Oauth::fetchProfile($tokenResp['access_token']); $email = $profile['email'] ?? $profile['username'] ?? ''; $name = $profile['full_name'] ?? $profile['name'] ?? $email; if ($email === '') { deny('No se pudo leer el perfil del usuario desde el servidor de correo.'); } if (!Auth::emailDomainAllowed($email)) { deny('Esta cuenta no está autorizada para Donna. Solo dominios corporativos de AAL.', 403); } if (!Auth::completeLogin($email, $name)) { deny('Tu cuenta de Donna está desactivada. Contacta al administrador para reactivarla.', 403); } $returnTo = Auth::popReturnTo(); if (!str_starts_with($returnTo, '/')) $returnTo = '/'; header('Location: ' . $returnTo); exit;