Skip to content

fix: 登录成功后回跳登录前原页面(backurl) - #200

Merged
makewheels merged 1 commit into
masterfrom
fix-login-redirect-backurl
Aug 27, 2026
Merged

fix: 登录成功后回跳登录前原页面(backurl)#200
makewheels merged 1 commit into
masterfrom
fix-login-redirect-backurl

Conversation

@makewheels

Copy link
Copy Markdown
Owner

未登录打开 /practice?scenario=<slug>(或任何受保护页面)被弹去登录页,登录成功后固定跳首页,原入口丢失。

修复

  • ProtectedRoutes:跳登录页时携带 ?redirect=<encodeURIComponent(原路径+查询)>
  • LoginPage:登录成功后 navigate(safeRedirect(redirect))safeRedirect 只接受站内路径,拒绝外链、// 协议相对路径、/login 自身,缺参回 /
  • 顺带收益:复习/历史/我的等所有受保护页面未登录访问都获得同样的回跳能力。

验证(本机 + CI)

  • LoginPage 单测 9 条全过(新增 4:缺参回首页 / 带查询参数回指定题 / 会话路径保留 / 拒绝三类恶意 redirect)。
  • 全量 pnpm test 332 passed,覆盖率 89.02/82.33/87.34/92.66(门禁 80/70/80/80),lint 0 errors。
  • E2E 全矩阵 60 passed(5 引擎),含新增「未登录 → 登录 → 回到指定题且内容精确」。

@makewheels
makewheels merged commit 3f5a9e8 into master Aug 27, 2026
4 checks passed
@makewheels
makewheels deleted the fix-login-redirect-backurl branch August 27, 2026 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant