161 lines
3.5 KiB
Markdown
161 lines
3.5 KiB
Markdown
|
|
# 游客模式测试步骤
|
|||
|
|
|
|||
|
|
**时间:** 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
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 成功标志
|
|||
|
|
|
|||
|
|
- ✅ 游客访问订单列表页面不弹窗
|
|||
|
|
- ✅ 控制台显示"游客模式,不加载订单"
|
|||
|
|
- ✅ 页面显示"需要登录"空状态
|
|||
|
|
- ✅ 点击"立即登录"可以跳转
|
|||
|
|
- ✅ 登录后正常显示订单数据
|