feat: 内置演示账号 demo/demo1234 + 登录页一键填充 + 服务器地址修复
This commit is contained in:
@@ -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() {
|
||||
<Button variant="primary" size="lg" onClick={() => void submit()} disabled={busy}>
|
||||
{busy ? '请稍候…' : (mode === 'login' ? '进入我的档案' : '创建我的档案')}
|
||||
</Button>
|
||||
<p className="text-center text-[11px] text-ink-3">数据按账号隔离存储 · 未注册用户请联系管理员获取邀请码</p>
|
||||
<button
|
||||
type="button"
|
||||
className="mt-1 flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed border-line px-3 py-2 text-[11.5px] text-ink-3 transition-colors hover:border-brand/40 hover:text-brand-text"
|
||||
onClick={() => { setUsername('demo'); setPassword('demo1234'); }}
|
||||
>
|
||||
演示账号:demo / demo1234(点击填充)
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -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'));
|
||||
|
||||
Reference in New Issue
Block a user