// Função para obter a URL base do servidor async function getApiUrl() { try { const response = await fetch('../ambiente_python/php/config_url.php'); // Solicita a URL base do PHP if (!response.ok) { throw new Error('Network response was not ok'); } const data = await response.json(); return data.apiUrl; // Retorna a URL base } catch (error) { console.error('Error fetching API URL:', error); throw error; } } // Adiciona um ouvinte de evento ao formulário de login para tratar o evento de submissão document.getElementById("formLogin").addEventListener("submit", async function (event) { event.preventDefault(); // Previne o comportamento padrão do formulário // Obtém os elementos do DOM correspondentes ao nome de usuário, senha e mensagem de erro const usernameElement = document.getElementById("username"); const passwordElement = document.getElementById("password"); const errorMessageElement = document.getElementById("errorMessage"); // Limpa qualquer mensagem de erro anterior e bordas de campo errorMessageElement.innerHTML = ''; usernameElement.style.borderColor = ''; passwordElement.style.borderColor = ''; // Verifica se os elementos do nome de usuário e senha existem if (!usernameElement || !passwordElement) { console.error('Username or password element not found'); return; } // Obtém os valores inseridos pelo usuário nos campos de nome de usuário e senha const username = usernameElement.value.trim(); const password = passwordElement.value.trim(); if (!username || !password) { errorMessageElement.innerText = "Preencha ambos os campos."; usernameElement.style.borderColor = 'red'; passwordElement.style.borderColor = 'red'; return; } try { // Obtém a URL base do servidor const apiUrl = await getApiUrl(); // Envia uma requisição POST para o servidor de login com os dados de usuário e senha const response = await fetch(`${apiUrl}/login`, { method: 'POST', headers: { 'Content-Type': 'application/json' // Define o tipo de conteúdo como JSON }, body: JSON.stringify({ username, password }) // Converte os dados para JSON antes de enviar }); if (response.ok) { const data = await response.json(); // Extrai os dados JSON da resposta localStorage.setItem('x-access-token', data.token); // Armazena o token de autenticação no localStorage // Redireciona o usuário para a página do ambiente do usuário window.location.href = "../ambiente_python/Ambiente_Usuario copy.html"; } else { errorMessageElement.innerText = "Usuário ou senha incorreto"; // Exibe mensagem de erro usernameElement.style.borderColor = 'red'; // Marca o campo do usuário com erro passwordElement.style.borderColor = 'red'; // Marca o campo da senha com erro } } catch (error) { console.error('Error:', error); // Loga qualquer erro ocorrido errorMessageElement.innerHTML = 'Erro ao tentar se comunicar com o servidor. Por favor, tente novamente mais tarde.'; } });