Files
web_auth/js/auth.js
2026-01-19 16:31:13 +03:00

70 lines
2.4 KiB
JavaScript

// Общие функции для AJAX запросов
async function sendRequest(url, data) {
try {
const response = await fetch(url, {
method: 'POST',
credentials: 'same-origin',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(data)
});
if (!response.ok) {
return { success: false, message: 'Ошибка сервера' };
}
return await response.json();
} catch (error) {
console.error('Ошибка:', error);
return { success: false, message: 'Ошибка сети' };
}
}
// Обработка регистрации
if (document.getElementById('registerForm')) {
document.getElementById('registerForm').addEventListener('submit', async function(e) {
e.preventDefault();
const formData = new FormData(this);
const data = Object.fromEntries(formData);
const result = await sendRequest('api/register.php', data);
if (result.success) {
alert(result.message);
window.location.href = 'login.html';
} else {
alert('Ошибка: ' + result.message);
}
});
}
// Обработка входа
if (document.getElementById('loginForm')) {
document.getElementById('loginForm').addEventListener('submit', async function(e) {
e.preventDefault();
const formData = new FormData(this);
const data = Object.fromEntries(formData);
if (!data.site_alias) {
const metaAlias = document.querySelector('meta[name="site-alias"]');
if (metaAlias && metaAlias.content) {
data.site_alias = metaAlias.content.trim().toLowerCase();
} else {
const path = window.location.pathname.replace(/\/+$/, '');
const parts = path.split('/').filter(Boolean);
data.site_alias = (parts[0] || 'root').toLowerCase();
}
} else if (typeof data.site_alias === 'string') {
data.site_alias = data.site_alias.trim().toLowerCase();
}
const result = await sendRequest('api/login.php', data);
if (result.success) {
alert(result.message);
window.location.href = 'index.html';
} else {
alert('Ошибка: ' + result.message);
}
});
}