feat(passport-invite): 优化新用户扫码邀请加入流程

- 扫码进入邀请页面时保存邀请 token 到本地存储
- 新增登录状态检测,未登录用户点击快速加入时保存邀请信息并跳转登录页
- 登录成功后返回邀请页自动执行加入应用操作,提升用户体验
- 支持已登录用户直接加入应用,简化流程
- 增加清理 pending 邀请数据的方法,防止数据残留
- 监听页面显示事件,处理登录返回后自动操作
- 调整接口请求逻辑,确保携带最新的邀请和授权数据
- 更新项目配置,注册邀请页面路径信息
This commit is contained in:
2026-04-11 23:33:55 +08:00
parent 371b478e33
commit 7ea0406336
4 changed files with 171 additions and 10 deletions

View File

@@ -22,7 +22,18 @@
"usedAt": 1775908159660,
"industryId": "all"
}
],
"f2494c1730eb411aac709ec2751d60fc": [
{
"expertId": "SeniorDeveloper",
"name": "Will",
"profession": "高级开发工程师",
"avatarUrl": "https://acc-1258344699.cos.accelerate.myqcloud.com/workbuddy/experts/avatars/02-Engineering/SeniorDeveloper/SeniorDeveloper.png",
"promptUrl": "https://acc-1258344699.cos.accelerate.myqcloud.com/workbuddy/experts/experts/02-Engineering/SeniorDeveloper/SeniorDeveloper_zh.md",
"usedAt": 1775921148885,
"industryId": "all"
}
]
},
"lastUpdated": 1775910071224
"lastUpdated": 1775921440281
}

View 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` - 完整重构邀请流程