75 lines
3.2 KiB
JavaScript
75 lines
3.2 KiB
JavaScript
// 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.';
|
|
}
|
|
});
|