peixue-dev/Archive/[一次性]游客模式专项课程修复-2026-02-01.md

4.1 KiB
Raw Permalink Blame History

游客模式专项课程修复 - 2026-02-01

问题描述

游客模式下访问"专项突破"页面时接口返回401错误页面显示"不支持"。

根本原因

  1. 后端配置不完整

    • WebMvcConfig.java 中只排除了 /api/special/**
    • 但实际接口路径是 /api/special-course/**
    • 导致专项课程接口仍然被JWT拦截器拦截
  2. 前端白名单不完整

    • 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专项突破列表

  1. 未登录状态下,点击首页"专项突破"按钮
  2. 预期结果:显示专项课程列表(完整数据)
  3. 实际结果 显示完整数据

测试场景2其他服务列表

  1. 未登录状态下,点击"测评师"、"成长规划师"按钮
  2. 预期结果:显示对应的服务列表(完整数据)
  3. 实际结果 显示完整数据

测试场景3详情页面

  1. 未登录状态下,点击任意课程/服务卡片
  2. 预期结果:显示详情页面(完整数据)
  3. 实际结果 显示完整数据

测试场景4登录拦截

  1. 未登录状态下,点击"立即预约"或"立即购买"按钮
  2. 预期结果:提示登录并跳转到登录页面
  3. 实际结果 正常拦截

涉及的接口路径

游客可访问(公开接口)

  • /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/** - 优惠券管理

总结

修复完成后,游客模式下:

  • 可以浏览所有公开内容(服务、课程、教师等)
  • 可以查看详情页面
  • 可以使用筛选和搜索功能
  • 无法支付和生成订单(需要登录)
  • 无法查看个人信息和订单(需要登录)

这样既保证了游客可以充分了解平台内容,又保护了用户隐私和交易安全。