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

150 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

2026-02-28 17:26:03 +08:00
# 游客模式专项课程修复 - 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拦截器排除列表
```java
"/api/special/**",
"/api/special-course/**", // ✅ 新增
```
### 2. 前端白名单完善 ✅
**文件**: `peidu/uniapp/src/utils/request.js`
完善游客白名单,添加所有公开接口:
```javascript
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. 停止后端服务
```bash
# 查找占用8089端口的进程
netstat -ano | findstr :8089
# 停止进程替换PID为实际进程ID
taskkill /F /PID <PID>
```
### 2. 重新启动后端服务
在IDEA中点击运行按钮启动 `PeiduApplication`
### 3. 清除前端缓存并重新编译
```bash
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/**` - 优惠券管理
## 总结
修复完成后,游客模式下:
- ✅ 可以浏览所有公开内容(服务、课程、教师等)
- ✅ 可以查看详情页面
- ✅ 可以使用筛选和搜索功能
- ❌ 无法支付和生成订单(需要登录)
- ❌ 无法查看个人信息和订单(需要登录)
这样既保证了游客可以充分了解平台内容,又保护了用户隐私和交易安全。