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

3.5 KiB
Raw Permalink Blame History

游客模式测试步骤

时间: 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. 点击菜单栏 "工具" → "清除缓存"
  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

在控制台查看:

// 应该看到这些日志
[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 处理

  1. HTTP 状态码 401 (res.statusCode === 401)

    • 增加游客模式判断
    • 无token时直接静默失败
  2. 业务码 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
}

成功标志

  • 游客访问订单列表页面不弹窗
  • 控制台显示"游客模式,不加载订单"
  • 页面显示"需要登录"空状态
  • 点击"立即登录"可以跳转
  • 登录后正常显示订单数据