generated from templates/ai-develops
52 lines
1.8 KiB
JavaScript
52 lines
1.8 KiB
JavaScript
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|||
|
|
const form = document.getElementById('loginForm');
|
|||
|
|
const username = document.getElementById('username');
|
|||
|
|
const password = document.getElementById('password');
|
|||
|
|
const remember = document.getElementById('remember');
|
|||
|
|
const error = document.getElementById('error');
|
|||
|
|
|
|||
|
|
function showError(msg){
|
|||
|
|
error.textContent = msg;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function validate() {
|
|||
|
|
if (!username.value || username.value.trim().length < 3) {
|
|||
|
|
showError('用户名至少 3 个字符');
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (!password.value || password.value.length < 6) {
|
|||
|
|
showError('密码至少 6 个字符');
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
form.addEventListener('submit', (e) => {
|
|||
|
|
e.preventDefault();
|
|||
|
|
showError('');
|
|||
|
|
if (!validate()) return;
|
|||
|
|
|
|||
|
|
// 本地模拟认证:示例用户名/密码对
|
|||
|
|
const validUsers = { 'alice':'password123', 'bob':'secret123', 'beppeb':'demoPass' };
|
|||
|
|
const inputUser = username.value.trim();
|
|||
|
|
const inputPass = password.value;
|
|||
|
|
|
|||
|
|
if (validUsers[inputUser] && validUsers[inputUser] === inputPass) {
|
|||
|
|
// 登录成功:写入本地 token(示例)并跳转首页
|
|||
|
|
const token = 'demo-token-' + Math.random().toString(36).slice(2);
|
|||
|
|
if (remember.checked) {
|
|||
|
|
localStorage.setItem('demo_auth_token', token);
|
|||
|
|
} else {
|
|||
|
|
sessionStorage.setItem('demo_auth_token', token);
|
|||
|
|
// keep a copy in localStorage to let index.html detect login; it's demo-only
|
|||
|
|
localStorage.setItem('demo_auth_token', token);
|
|||
|
|
}
|
|||
|
|
// 简短提示后跳转
|
|||
|
|
showError('登录成功,正在跳转……');
|
|||
|
|
setTimeout(() => { window.location.href = '/'; }, 700);
|
|||
|
|
} else {
|
|||
|
|
showError('用户名或密码不正确(此示例使用本地模拟账号)。');
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|