peixue-dev/Archive/[一次性]游客模式测试步骤-2026-02-01.md

161 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

2026-02-28 17:26:03 +08:00
# 游客模式测试步骤
**时间:** 2026-02-01
**目的:** 验证游客模式下不弹出"登录已过期"提示
---
## 测试前准备
### 1. 清除缓存并重新编译
执行以下命令:
```bash
cd peidu/uniapp
rmdir /s /q node_modules\.cache
rmdir /s /q unpackage
npm run dev:mp-weixin
```
或者直接运行:
```bash
Archive\[一次性]清除缓存重新编译-游客模式修复-2026-02-01.bat
```
### 2. 在微信开发者工具中清除缓存
1. 点击菜单栏 "工具" → "清除缓存"
2. 勾选所有选项
3. 点击"清除"
4. 重新点击"编译"
---
## 测试步骤
### 步骤1清除登录状态
1. 打开微信开发者工具的调试器
2. 切换到 "Storage" 标签
3. 找到并删除以下项:
- `token`
- `userInfo`
- `currentRole`
4. 刷新小程序
### 步骤2访问订单列表页面
1. 在小程序底部导航栏点击"服务日历"
2. 或者直接访问 `/pages/order/list`
### 步骤3观察结果
**预期结果:**
- ✅ 页面正常显示日历界面
- ✅ 显示筛选栏(全部、待服务、服务中、已完成)
- ✅ 显示"需要登录"的空状态
- ✅ 显示"立即登录"按钮
-**不弹出**"登录已过期"提示框
- ❌ **不弹出**任何错误提示
**控制台输出:**
```
[服务日历] 用户角色: parent
[服务日历] 登录状态: false
[服务日历] 游客模式,不加载订单
```
或者如果接口被调用:
```
[Request] 游客模式业务码401无token静默失败
```
### 步骤4点击"立即登录"
1. 点击页面上的"立即登录"按钮
2. 验证跳转到登录页面 `/pages/login/index`
### 步骤5登录后验证
1. 完成登录流程
2. 返回订单列表页面
3. 验证能正常显示订单数据
---
## 问题排查
### 如果仍然弹出"登录已过期"
#### 检查1确认使用的是正确的 request.js
在控制台查看:
```javascript
// 应该看到这些日志
[Request] 当前环境: 生产环境
[Request] BASE_URL: https://px.ddn-ai.cloud
```
#### 检查2确认 token 已清除
在控制台执行:
```javascript
uni.getStorageSync('token')
// 应该返回空字符串或 undefined
```
#### 检查3查看控制台错误信息
查找包含以下关键词的日志:
- `[Request] 游客模式`
- `业务码401`
- `静默失败`
#### 检查4确认代码已更新
查看 `peidu/uniapp/src/utils/request.js` 文件:
- 第 237 行应该有:`if (isGuestMode() && isGuestAllowedUrl(options.url))`
- 第 244 行应该有:`if (!latestToken)`
---
## 修复要点总结
### 修复了两处 401 处理
1. **HTTP 状态码 401** (`res.statusCode === 401`)
- 增加游客模式判断
- 无token时直接静默失败
2. **业务码 401** (`res.data.code === 401`)
- 增加游客模式判断
- 无token时直接静默失败
### 关键代码
```javascript
// 游客模式判断
if (isGuestMode() && isGuestAllowedUrl(options.url)) {
console.log('[Request] 游客模式业务码401接口静默失败:', options.url)
reject({ code: 401, message: '未登录', data: res.data, silent: true })
return
}
// 无token判断
if (!latestToken) {
console.log('[Request] 游客模式业务码401无token静默失败')
reject({ code: 401, message: '未登录', data: res.data, silent: true })
return
}
```
---
## 成功标志
- ✅ 游客访问订单列表页面不弹窗
- ✅ 控制台显示"游客模式,不加载订单"
- ✅ 页面显示"需要登录"空状态
- ✅ 点击"立即登录"可以跳转
- ✅ 登录后正常显示订单数据