architecture: 数据唯一权威迁至服务器——本地降级为实时缓存,写后即时推送+快照重建;账号登录转为云端原生(新增 /api/auth/password、/api/auth/delete、每日自动备份)
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
// 服务器访问基础层:同步服务地址与登录令牌的本地持久化
|
||||
// 这些信息必须保存在本地(登录前就需要知道服务器地址),不属于业务数据,不参与同步
|
||||
export const DEFAULT_SYNC_BASE = 'https://daywk.linyux.cn'
|
||||
|
||||
const BASE_KEY = 'dsh_sync_base'
|
||||
const TOKEN_KEY = 'dsh_sync_token'
|
||||
|
||||
function lsGet(key: string): string {
|
||||
try { return localStorage.getItem(key) || '' } catch { return '' }
|
||||
}
|
||||
function lsSet(key: string, value: string): void {
|
||||
try { localStorage.setItem(key, value) } catch { /* 隐私模式忽略 */ }
|
||||
}
|
||||
function lsDel(key: string): void {
|
||||
try { localStorage.removeItem(key) } catch { /* 忽略 */ }
|
||||
}
|
||||
|
||||
export async function getSyncBase(): Promise<string> {
|
||||
return lsGet(BASE_KEY) || DEFAULT_SYNC_BASE
|
||||
}
|
||||
|
||||
export async function setSyncBaseOverride(value: string): Promise<void> {
|
||||
const v = (value || '').trim().replace(/\/+$/, '')
|
||||
if (v && v !== DEFAULT_SYNC_BASE) lsSet(BASE_KEY, v)
|
||||
else lsDel(BASE_KEY)
|
||||
}
|
||||
|
||||
export function getToken(): string {
|
||||
const raw = lsGet(TOKEN_KEY)
|
||||
if (!raw) return ''
|
||||
try {
|
||||
// 令牌形如 payload.sig;过期由服务端判断,401 时上层负责重登
|
||||
return raw
|
||||
} catch { return '' }
|
||||
}
|
||||
|
||||
export function setToken(token: string): void {
|
||||
if (token) lsSet(TOKEN_KEY, token)
|
||||
else lsDel(TOKEN_KEY)
|
||||
}
|
||||
Reference in New Issue
Block a user