fix: 全站页面保活机制、登录拦截优化、UI修复与功能完善
- 移除未登录全页面拦截,改为浏览自由 + 功能使用时弹窗 - 修复PageTransition退出动画卡死导致黑屏的bug - CanvasPage添加加载中状态避免首次访问黑屏假死 - 全站7个工具页添加页面保活机制,切页后台任务不中断 - 修复未登录时401误触发"用户已在别处登录"弹窗 - 删除MorePage模板板块、微信登录、EcommerceTemplates/SizeTemplate路由 - 剧本评分接入DashScope qwen3.7-max直连API - 电商视频生成重构为3阶段可视管线(策划→生成图片→生成视频) - 电商视频保活增强:异步函数直接写localStorage避免卸载丢失 - Workbench侧边栏移除mode过滤,三模式共用同一对话列表 - 首页更新轮播图/背景视频、按钮跳转修正、文案优化 - AppShell顶栏新增网站备案信息按钮 - 多个页面的terminate/cancel按钮覆盖、单镜头重试、批量保存下载 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -234,6 +234,10 @@ function notifySessionExpired(status: number, response: Response, payload: unkno
|
||||
if (/\/auth\//i.test(response.url)) return;
|
||||
// SESSION_REPLACED has its own dedicated handling/modal.
|
||||
if (getPayloadCode(payload) === "SESSION_REPLACED") return;
|
||||
// If the user never had a session, a 401 is expected — not a session expiry.
|
||||
if (!readStoredSession()) return;
|
||||
// Deliberate early-exit for unauthenticated users — not a real auth failure.
|
||||
if (getPayloadCode(payload) === "NOT_LOGGED_IN") return;
|
||||
|
||||
const now = Date.now();
|
||||
if (now - lastSessionExpiredEventAt < 1500) return;
|
||||
@@ -250,6 +254,7 @@ function notifySessionReplaced(status: number, payload: unknown, fallbackMessage
|
||||
const message = getPayloadMessage(payload) || fallbackMessage || "您已在别处登录";
|
||||
const isSessionReplaced = code === "SESSION_REPLACED" || message.includes("您已在别处登录");
|
||||
if (!isSessionReplaced || typeof window === "undefined") return;
|
||||
if (!readStoredSession()) return;
|
||||
|
||||
const now = Date.now();
|
||||
if (now - lastSessionReplacedEventAt < 1500) return;
|
||||
|
||||
Reference in New Issue
Block a user