feat(frontend): 步骤 6.5 — Cookie 工具函数

This commit is contained in:
hhs
2026-06-10 15:24:34 +08:00
parent 5e3da508cf
commit 60f183b8e4

View File

@@ -0,0 +1,40 @@
const COOKIE_NAME = "ai_agent_login";
const COOKIE_DAYS = 7;
export interface UserInfo {
user: string;
ts: number;
}
function setCookie(name: string, value: string, days: number) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${encodeURIComponent(value)};expires=${expires};path=/`;
}
function getCookie(name: string): string | null {
const match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)"));
return match ? decodeURIComponent(match[2]) : null;
}
function deleteCookie(name: string) {
document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`;
}
export function setUserInfo(user: string) {
const info: UserInfo = { user, ts: Date.now() };
setCookie(COOKIE_NAME, JSON.stringify(info), COOKIE_DAYS);
}
export function getUserInfo(): UserInfo | null {
const raw = getCookie(COOKIE_NAME);
if (!raw) return null;
try {
return JSON.parse(raw) as UserInfo;
} catch {
return null;
}
}
export function clearUserInfo() {
deleteCookie(COOKIE_NAME);
}