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

64 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 登录后路由跳转修复设计文档
## 问题描述
当前小程序登录成功后,系统会根据用户是否已有资料(`hasProfile`)进行分支路由:
- 有资料 → 爽文生成页面 (`/pages/main/index?tab=script`)
- 无资料 → 编辑资料页面 (`/pages/onboarding/index`)
这导致新用户或资料不完整的用户登录后被迫进入编辑资料页面,而非核心的爽文生成页面。产品要求登录后统一进入爽文生成页,不再强制填写资料。
## 方案概述
采用**方案 A**:直接移除登录后的资料检查,统一路由到爽文生成页。
编辑资料页面(`onboarding/index.vue`)继续保留,用户可从"我的" tab 中的编辑资料入口主动进入。
## 具体改动
### 1. `mini-program/src/pages/login/index.vue`
修改 `routeAfterLogin` 函数,移除 `profileReady` 参数和条件判断,登录成功后一律跳转至爽文生成页:
```javascript
const routeAfterLogin = () => {
uni.redirectTo({ url: '/pages/main/index?tab=script' })
}
```
调用处同步更新:
- `handleWechatLogin` 中:`routeAfterLogin()`
- `handleLogin` 中:`routeAfterLogin()`
### 2. `mini-program/src/pages/splash/index.vue`
修改 `resolveInitialRoute` 函数中已登录用户的跳转逻辑:
```javascript
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/splash``main/index?tab=script`
- 资料编辑入口:用户主动从"我的" tab 进入 `profile/index``onboarding/index`
- 无后端接口变更
## 测试验证
1. 新用户手机号登录成功后,直接进入爽文生成页面(底部 tab 高亮"爽文生成"
2. 新用户微信登录成功后,同样直接进入爽文生成页面
3. 已登录用户冷启动(splash 页恢复会话),直接进入爽文生成页面
4. 从"我的" tab 点击编辑资料,仍可正常进入资料编辑页面
5. 资料编辑页面保存后,仍可正常返回爽文生成页面