AI 生成: 一个面向个人/团队/家庭的智能旅游规划工具,支持AI行程生成、地图标注与景点打卡记录。
This commit is contained in:
+45
@@ -0,0 +1,45 @@
|
||||
// 简单的本地账号系统:用户数据保存在 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;
|
||||
})();
|
||||
Reference in New Issue
Block a user