refactor(layout, i18n, admin): 优化布局结构与多语言支持
调整 AdminShell 组件的子组件顺序,提升代码可读性。更新 admin-breadcrumb 组件,简化导航标签翻译逻辑,确保多语言支持的一致性。重构 admin-language-switcher 组件,优化语言切换的用户体验,增强界面交互性。更新多语言配置,新增登录界面的副标题,提升用户体验。
This commit is contained in:
28
src/lib/admin-session-verify.ts
Normal file
28
src/lib/admin-session-verify.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user