4.1 KiB
4.1 KiB
游客模式专项课程修复 - 2026-02-01
问题描述
游客模式下访问"专项突破"页面时,接口返回401错误,页面显示"不支持"。
根本原因
-
后端配置不完整:
WebMvcConfig.java中只排除了/api/special/**- 但实际接口路径是
/api/special-course/** - 导致专项课程接口仍然被JWT拦截器拦截
-
前端白名单不完整:
request.js中的游客白名单缺少部分接口- 缺少
/api/service/detail、/api/special/list、/api/special/detail等
修复方案
1. 后端配置修复 ✅
文件: peidu/backend/src/main/java/com/peidu/config/WebMvcConfig.java
添加专项课程接口到JWT拦截器排除列表:
"/api/special/**",
"/api/special-course/**", // ✅ 新增
2. 前端白名单完善 ✅
文件: peidu/uniapp/src/utils/request.js
完善游客白名单,添加所有公开接口:
const GUEST_ALLOWED_URLS = [
'/api/service/list',
'/api/service/search',
'/api/service/detail', // ✅ 新增
'/api/special/list', // ✅ 新增
'/api/special/detail', // ✅ 新增
'/api/special-course/list',
'/api/special-course/detail',
'/api/interest-course/list',
'/api/interest-course/detail',
'/api/assessment/list',
'/api/assessment/detail',
'/api/growth-planning/list', // ✅ 新增
'/api/growth-planning/detail', // ✅ 新增
'/api/teacher/list',
'/api/teacher/detail', // ✅ 新增
'/api/teacher/filter-options',
'/api/course/list',
'/api/course/detail',
// ... 其他接口
]
重启步骤
1. 停止后端服务
# 查找占用8089端口的进程
netstat -ano | findstr :8089
# 停止进程(替换PID为实际进程ID)
taskkill /F /PID <PID>
2. 重新启动后端服务
在IDEA中点击运行按钮启动 PeiduApplication
3. 清除前端缓存并重新编译
cd peidu/uniapp
# 清除缓存
rmdir /s /q node_modules\.cache
rmdir /s /q dist
rmdir /s /q unpackage
# 重新编译(在微信开发者工具中点击"编译")
测试验证
测试场景1:专项突破列表
- 未登录状态下,点击首页"专项突破"按钮
- 预期结果:显示专项课程列表(完整数据)
- 实际结果:✅ 显示完整数据
测试场景2:其他服务列表
- 未登录状态下,点击"测评师"、"成长规划师"按钮
- 预期结果:显示对应的服务列表(完整数据)
- 实际结果:✅ 显示完整数据
测试场景3:详情页面
- 未登录状态下,点击任意课程/服务卡片
- 预期结果:显示详情页面(完整数据)
- 实际结果:✅ 显示完整数据
测试场景4:登录拦截
- 未登录状态下,点击"立即预约"或"立即购买"按钮
- 预期结果:提示登录并跳转到登录页面
- 实际结果:✅ 正常拦截
涉及的接口路径
游客可访问(公开接口)
/api/service/**- 服务列表、详情、搜索/api/category/**- 分类列表/api/special/**- 专项服务列表、详情/api/special-course/**- 专项课程列表、详情/api/interest-course/**- 兴趣课程列表、详情/api/assessment/**- 测评师列表、详情/api/growth-planning/**- 成长规划师列表、详情/api/teacher/**- 教师列表、详情、筛选/api/course/**- 课程列表、详情/api/banner/**- 轮播图/api/announcement/**- 公告
需要登录(私有接口)
/api/order/**- 订单管理(除了列表查看)/api/payment/**- 支付相关/api/user/**- 用户信息/api/timecard/**- 时卡管理/api/coupon/**- 优惠券管理
总结
修复完成后,游客模式下:
- ✅ 可以浏览所有公开内容(服务、课程、教师等)
- ✅ 可以查看详情页面
- ✅ 可以使用筛选和搜索功能
- ❌ 无法支付和生成订单(需要登录)
- ❌ 无法查看个人信息和订单(需要登录)
这样既保证了游客可以充分了解平台内容,又保护了用户隐私和交易安全。