Files
happy-life-star/docs/superpowers/specs/2026-06-03-login-route-fix-design.md
T

2.4 KiB
Raw Blame History

登录后路由跳转修复设计文档

问题描述

当前小程序登录成功后,系统会根据用户是否已有资料(hasProfile)进行分支路由:

  • 有资料 → 爽文生成页面 (/pages/main/index?tab=script)
  • 无资料 → 编辑资料页面 (/pages/onboarding/index)

这导致新用户或资料不完整的用户登录后被迫进入编辑资料页面,而非核心的爽文生成页面。产品要求登录后统一进入爽文生成页,不再强制填写资料。

方案概述

采用方案 A:直接移除登录后的资料检查,统一路由到爽文生成页。

编辑资料页面(onboarding/index.vue)继续保留,用户可从"我的" tab 中的编辑资料入口主动进入。

具体改动

1. mini-program/src/pages/login/index.vue

修改 routeAfterLogin 函数,移除 profileReady 参数和条件判断,登录成功后一律跳转至爽文生成页:

const routeAfterLogin = () => {
  uni.redirectTo({ url: '/pages/main/index?tab=script' })
}

调用处同步更新:

  • handleWechatLogin 中:routeAfterLogin()
  • handleLogin 中:routeAfterLogin()

2. mini-program/src/pages/splash/index.vue

修改 resolveInitialRoute 函数中已登录用户的跳转逻辑:

if (session.status === store.SESSION_STATUS.AUTHENTICATED) {
  routeOnce('/pages/main/index?tab=script', { reason: session.reason })
  return
}

不再根据 session.hasProfile 进行分支。

3. 保留内容

  • stores/app.js 中的 hasProfile computed 属性不做修改,它仍可在其他场景(如判断是否需要引导补充资料)中使用。
  • onboarding/index.vue 页面不做修改,保留为独立的编辑资料页面。

数据流影响

  • 登录流程:login/splashmain/index?tab=script
  • 资料编辑入口:用户主动从"我的" tab 进入 profile/indexonboarding/index
  • 无后端接口变更

测试验证

  1. 新用户手机号登录成功后,直接进入爽文生成页面(底部 tab 高亮"爽文生成"
  2. 新用户微信登录成功后,同样直接进入爽文生成页面
  3. 已登录用户冷启动(splash 页恢复会话),直接进入爽文生成页面
  4. 从"我的" tab 点击编辑资料,仍可正常进入资料编辑页面
  5. 资料编辑页面保存后,仍可正常返回爽文生成页面