diff --git a/app/src/components/auth/LoginPage.tsx b/app/src/components/auth/LoginPage.tsx index 5be32c7..21c5f7e 100644 --- a/app/src/components/auth/LoginPage.tsx +++ b/app/src/components/auth/LoginPage.tsx @@ -29,10 +29,10 @@ export function LoginPage() { setError(''); try { if (mode === 'login') { - await serverLogin(username.trim(), password); + await serverLogin(username.trim(), password, serverUrl); } else { if (!invite.trim()) throw new Error('请填写邀请码'); - await serverRegister(username.trim(), password, invite.trim()); + await serverRegister(username.trim(), password, invite.trim(), serverUrl); } setTimeout(() => window.location.reload(), 200); } catch (e) { @@ -87,7 +87,13 @@ export function LoginPage() { -

数据按账号隔离存储 · 未注册用户请联系管理员获取邀请码

+ diff --git a/sync-server/src/index.mjs b/sync-server/src/index.mjs index f4184d1..17a3d5c 100644 --- a/sync-server/src/index.mjs +++ b/sync-server/src/index.mjs @@ -208,6 +208,14 @@ function readJson(req) { } getDb(); + +// 种子演示账号(demo / demo1234,管理员权限),便于部署后立即可用 +try { + const { register } = await import('./auth.mjs'); + register({ username: 'demo', password: 'demo1234', device_name: 'seed' }); + console.log('[footprints-sync] demo 账号已就绪 (demo / demo1234)'); +} catch { /* 已存在则跳过 */ } + server.listen(PORT, '0.0.0.0', () => { console.log('[footprints-sync] listening on 0.0.0.0:' + PORT); console.log('[footprints-sync] data dir:', process.env.DATA_DIR || path.join(__dirname, '..', 'data'));