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