Files
travel-planner-20260929043148/js/auth.js
T

46 lines
1.4 KiB
JavaScript

// 简单的本地账号系统:用户数据保存在 localStorage
(function () {
const USERS_KEY = 'tp_users';
const SESSION_KEY = 'tp_session';
function getUsers() {
try { return JSON.parse(localStorage.getItem(USERS_KEY)) || {}; }
catch (e) { return {}; }
}
function saveUsers(users) {
localStorage.setItem(USERS_KEY, JSON.stringify(users));
}
const Auth = {
currentUser() {
return localStorage.getItem(SESSION_KEY) || null;
},
login(username, password) {
const users = getUsers();
if (!users[username]) return { ok: false, msg: '用户不存在,请先注册' };
if (users[username] !== password) return { ok: false, msg: '密码错误' };
localStorage.setItem(SESSION_KEY, username);
return { ok: true };
},
register(username, password) {
if (!username || !password) return { ok: false, msg: '用户名和密码不能为空' };
const users = getUsers();
if (users[username]) return { ok: false, msg: '用户已存在' };
users[username] = password;
saveUsers(users);
localStorage.setItem(SESSION_KEY, username);
return { ok: true };
},
logout() {
localStorage.removeItem(SESSION_KEY);
},
// 每个用户独立的数据命名空间
dataKey(name) {
const u = this.currentUser();
return u ? `tp_data_${u}_${name}` : null;
}
};
window.Auth = Auth;
})();