fix: normalize login and legacy menu routes

This commit is contained in:
chengkml
2026-05-16 22:33:53 +08:00
parent c96bb5fa2d
commit 5cf82f3468
9 changed files with 325 additions and 190 deletions
+56
View File
@@ -72,3 +72,59 @@
- 风险与关注点:
- 当前在线 `REFRESH_COOKIE_SECURE=true`;若继续通过纯 HTTP IP 访问,浏览器可能仍不会持久化 refresh cookie。若部署后出现“登录后刷新即掉线”,需将当前环境的 `REFRESH_COOKIE_SECURE` 调整为 `false` 或切到 HTTPS 入口。
## Work Log - 登录入口迁移到 `/fl/login`2026-05-16
- 背景:
- 当前前端登录页挂在应用根路径;在生产 basePath=`/fl` 下,对外登录地址表现为 `/fl`
- 需求要求将登录路由显式调整为 `/fl/login`,同时保留旧入口兼容跳转。
- 本次改动:
- `web/src/app/login/page.tsx`
- 新增独立登录页,沿用现有登录表单、记住密码和登录态自动跳转逻辑。
- `web/src/app/page.tsx`
- 根页改为重定向到 `/login`,不再直接承载登录表单。
- `web/src/middleware.ts`
-`/login` 标记为公开直达路由,避免被后台 rewrite 到 `/admin/login`
- `web/src/components/auth-provider.tsx`
- 退出登录后统一跳转到 `/login`
- `web/src/app/admin/layout.tsx`
- 未登录态提示中的“前往登录”入口改为 `/login`
- `MEMORY.md`
- 同步更新长期路由口径:`/login` 为规范登录入口,`/` 仅做跳转。
- 验证:
- `npm --prefix web run lint -- src/app/page.tsx src/app/login/page.tsx src/middleware.ts src/components/auth-provider.tsx src/app/admin/layout.tsx`
通过;仅保留既有 `<img>` 使用警告,无新增 lint error。
- 已本地确认 Next.js 16 安装包的 app redirect 渲染链会按 basePath 处理重定向,当前 `redirect("/login")` 口径可用于 `/fl/login` 场景。
- `npm --prefix web run build` 已启动并进入 `next build --webpack`,但在本次会话等待窗口内未返回最终退出码;期间未出现与本次改动相关的编译报错输出。
- 风险与关注点:
- 仓库内仍有多处“返回首页”按钮保留指向 `/`;当前会经过根页跳转到 `/login`,功能不受影响,但若后续希望所有入口都直接落到规范地址,可再统一替换为 `/login`
## Work Log - 菜单旧路由兼容修复(2026-05-16)
- 背景:
- 用户反馈 `/fl/user` 按预期应进入用户页面,但实际返回 404。
- 当前前端真实页面路径为 `/users`,而部分历史菜单 path/手输地址仍可能使用旧别名(如 `/user``/role``/menu`)。
- 本次改动:
- `web/src/lib/app-route-path.ts`
- 新增统一路由规范化 helper,集中维护旧菜单别名到正式公开路由的映射。
- `web/src/middleware.ts`
-`/user``/role``/menu` 等旧地址,以及 `/admin/*` 旧入口,统一先重定向到规范公开路由,再走后台 rewrite。
- `web/src/app/admin/layout.tsx`
- 后台菜单树 path 统一先做规范化,避免菜单点击后高亮丢失或 path 仍指向旧地址。
- `web/src/app/admin/menus/page.tsx`
- 菜单管理页读取菜单列表时展示规范化 path;提交菜单编辑时也会把旧别名收敛到正式地址。
- `MEMORY.md`
- 补充“前端菜单路由兼容口径”,记录规范地址与旧别名自动收敛规则。
- 验证:
- `npm --prefix web run lint -- src/lib/app-route-path.ts src/middleware.ts src/app/admin/layout.tsx src/app/admin/menus/page.tsx`
通过;仅保留既有 `<img>` warning,无新增 lint error。
- `git diff --check -- web/src/lib/app-route-path.ts web/src/middleware.ts web/src/app/admin/layout.tsx web/src/app/admin/menus/page.tsx`
通过。
- 风险与关注点:
- 当前别名映射基于已知历史菜单路径补齐;若库里还存在其他非常规旧 path,仍需按实际反馈继续补别名表。