2026-03-12 11:23:10 +08:00
|
|
|
async function doLogin() {
|
|
|
|
|
const user = document.getElementById('loginUser').value.trim();
|
|
|
|
|
const pass = document.getElementById('loginPass').value.trim();
|
|
|
|
|
if (!user || !pass) { document.getElementById('loginError').textContent = '请输入用户名和密码'; return; }
|
|
|
|
|
try {
|
|
|
|
|
const res = await fetch(API + '/api/login', {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
|
body: JSON.stringify({ username: user, password: pass })
|
|
|
|
|
});
|
|
|
|
|
const data = await res.json();
|
|
|
|
|
if (!res.ok) { document.getElementById('loginError').textContent = data.error; return; }
|
|
|
|
|
token = data.token;
|
|
|
|
|
username = data.username;
|
|
|
|
|
localStorage.setItem('token', token);
|
|
|
|
|
localStorage.setItem('username', username);
|
|
|
|
|
showPage('homePage');
|
|
|
|
|
} catch (e) {
|
|
|
|
|
document.getElementById('loginError').textContent = '网络错误';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-01 16:15:23 +08:00
|
|
|
async function doRegister() {
|
|
|
|
|
const user = document.getElementById('registerUser').value.trim();
|
|
|
|
|
const pass = document.getElementById('registerPass').value.trim();
|
|
|
|
|
const passConfirm = document.getElementById('registerPassConfirm').value.trim();
|
|
|
|
|
if (!user || !pass) { document.getElementById('registerError').textContent = '请输入用户名和密码'; return; }
|
|
|
|
|
if (pass !== passConfirm) { document.getElementById('registerError').textContent = '两次密码输入不一致'; return; }
|
|
|
|
|
try {
|
|
|
|
|
const res = await fetch(API + '/api/register', {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
|
body: JSON.stringify({ username: user, password: pass })
|
|
|
|
|
});
|
|
|
|
|
const data = await res.json();
|
|
|
|
|
if (!res.ok) { document.getElementById('registerError').textContent = data.error; return; }
|
|
|
|
|
showToast('注册成功,请登录');
|
|
|
|
|
showLoginPage();
|
|
|
|
|
} catch (e) {
|
|
|
|
|
document.getElementById('registerError').textContent = '网络错误';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showRegisterPage() {
|
|
|
|
|
document.getElementById('registerError').textContent = '';
|
|
|
|
|
document.getElementById('registerUser').value = '';
|
|
|
|
|
document.getElementById('registerPass').value = '';
|
|
|
|
|
document.getElementById('registerPassConfirm').value = '';
|
|
|
|
|
showPage('registerPage');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showLoginPage() {
|
|
|
|
|
document.getElementById('loginError').textContent = '';
|
|
|
|
|
showPage('loginPage');
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-12 11:23:10 +08:00
|
|
|
function doLogout() {
|
|
|
|
|
token = null;
|
|
|
|
|
username = null;
|
|
|
|
|
localStorage.removeItem('token');
|
|
|
|
|
localStorage.removeItem('username');
|
|
|
|
|
showPage('loginPage');
|
|
|
|
|
}
|