调整 AdminShell 组件的子组件顺序,提升代码可读性。更新 admin-breadcrumb 组件,简化导航标签翻译逻辑,确保多语言支持的一致性。重构 admin-language-switcher 组件,优化语言切换的用户体验,增强界面交互性。更新多语言配置,新增登录界面的副标题,提升用户体验。
29 lines
801 B
TypeScript
29 lines
801 B
TypeScript
import { fetchAdminMeDeduped } from "@/lib/admin-fetch-me";
|
|
import { isAdminAuthRejected } from "@/lib/admin-auth-reject";
|
|
import { getAdminSessionState } from "@/stores/admin-session";
|
|
import { readToken } from "@/stores/admin-token";
|
|
|
|
/**
|
|
* 用 `/auth/me` 校验本地 Token 是否仍有效;失败时清会话(不跳转,由调用方决定)。
|
|
*/
|
|
export async function verifyStoredAdminSession(): Promise<boolean> {
|
|
const token = readToken();
|
|
if (!token) {
|
|
return false;
|
|
}
|
|
|
|
const session = getAdminSessionState();
|
|
session.setBearerToken(token);
|
|
|
|
try {
|
|
const result = await fetchAdminMeDeduped();
|
|
session.setAdminProfile(result.admin);
|
|
return true;
|
|
} catch (err) {
|
|
if (isAdminAuthRejected(err)) {
|
|
session.clearSession();
|
|
}
|
|
return false;
|
|
}
|
|
}
|