This commit is contained in:
eric
2026-03-13 05:51:29 -05:00
parent 8a095f7d45
commit 15dba690d3
9 changed files with 103 additions and 22 deletions

View File

@@ -67,11 +67,17 @@ export function pbSaveAuth(token: string, record: AuthUser): void {
localStorage.setItem(PB_STORAGE_KEYS.user, JSON.stringify(record));
}
/** 登出 - 清除本地存储根域 Cookie */
/** 登出 - 清除本地存储、支付订单、根域 Cookie */
export async function pbLogout(): Promise<void> {
if (typeof window === "undefined") return;
localStorage.removeItem(PB_STORAGE_KEYS.token);
localStorage.removeItem(PB_STORAGE_KEYS.user);
localStorage.removeItem("join_pay_order");
try {
document.cookie = "join_pay_order=; path=/; max-age=0";
} catch {
/* ignore */
}
try {
await fetch("/api/auth/logout", { method: "POST", credentials: "include" });
} catch {
@@ -80,18 +86,24 @@ export async function pbLogout(): Promise<void> {
window.dispatchEvent(new CustomEvent("auth:updated"));
}
export function getStoredUserEmail(): string | null {
export function getStoredUser(): AuthUser | null {
if (typeof window === "undefined") return null;
try {
const raw = localStorage.getItem(PB_STORAGE_KEYS.user);
if (!raw) return null;
const user = JSON.parse(raw);
return user?.email ?? null;
if (!user?.id || !user?.email) return null;
return user;
} catch {
return null;
}
}
export function getStoredUserEmail(): string | null {
const user = getStoredUser();
return user?.email ?? null;
}
export function getStoredToken(): string | null {
if (typeof window === "undefined") return null;
return localStorage.getItem(PB_STORAGE_KEYS.token);

View File

@@ -3,6 +3,7 @@ export {
pbRegister,
pbSaveAuth,
pbLogout,
getStoredUser,
getStoredUserEmail,
getStoredToken,
} from "./auth";