feat(passport-invite): 优化新用户扫码邀请加入流程
- 扫码进入邀请页面时保存邀请 token 到本地存储 - 新增登录状态检测,未登录用户点击快速加入时保存邀请信息并跳转登录页 - 登录成功后返回邀请页自动执行加入应用操作,提升用户体验 - 支持已登录用户直接加入应用,简化流程 - 增加清理 pending 邀请数据的方法,防止数据残留 - 监听页面显示事件,处理登录返回后自动操作 - 调整接口请求逻辑,确保携带最新的邀请和授权数据 - 更新项目配置,注册邀请页面路径信息
This commit is contained in:
44
.workbuddy/memory/2026-04-11.md
Normal file
44
.workbuddy/memory/2026-04-11.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# 2026-04-11 工作记录
|
||||
|
||||
## 任务:修复邀请加入应用流程
|
||||
|
||||
### 问题描述
|
||||
`passport/invite/index` 页面在新用户扫码加入应用时存在问题:
|
||||
- 新用户点击"微信手机号快速加入"时,如果未注册,后端返回"用户不存在"
|
||||
- 页面引导用户去登录,但登录完成后**没有自动执行加入应用的操作**
|
||||
|
||||
### 解决方案
|
||||
参考 `UserCard.tsx` 和 `phone-auth/index.tsx` 的实现模式,修改了 `src/passport/invite/index.tsx`:
|
||||
|
||||
#### 1. 新增功能
|
||||
- 页面加载时保存邀请 token 到本地存储
|
||||
- 检测用户登录状态
|
||||
- 未登录用户点击加入时,保存邀请信息并引导到 `phone-auth` 登录页
|
||||
- 登录成功后返回邀请页面,自动执行加入操作
|
||||
- 新增 `clearPendingInviteData` 方法清理临时数据
|
||||
|
||||
#### 2. 关键修改点
|
||||
- 使用 `saveInviteParams` 保存邀请信息
|
||||
- 使用 `pending_invite_*` 系列 storage key 保存待处理的邀请数据
|
||||
- 页面显示时通过 `AppShow` 事件监听登录返回
|
||||
- 登录成功后自动调用 `handleJoinApp` 完成加入
|
||||
|
||||
#### 3. 流程优化
|
||||
```
|
||||
新用户流程:
|
||||
1. 扫码进入邀请页面 → 保存 invite token
|
||||
2. 点击"微信手机号快速加入"
|
||||
3. 检测到未登录 → 保存 pending 数据 → 跳转到 phone-auth
|
||||
4. 完成登录/注册 → 返回邀请页面
|
||||
5. 自动检测 pending 数据 → 自动执行加入
|
||||
6. 加入成功 → 跳转到首页
|
||||
|
||||
已登录用户流程:
|
||||
1. 扫码进入邀请页面
|
||||
2. 点击"微信手机号快速加入"
|
||||
3. 直接执行加入操作
|
||||
4. 加入成功 → 跳转到首页
|
||||
```
|
||||
|
||||
### 文件修改
|
||||
- `src/passport/invite/index.tsx` - 完整重构邀请流程
|
||||
Reference in New Issue
Block a user