feat: 完成Nacos配置优化和WebSocket集成
主要更新: 1. 统一所有微服务端口配置(19000-19008) 2. 为所有服务创建本地/测试/生产三套环境配置 3. 配置Nacos认证密码(本地:Peanut2817*#, 测试/生产:EmotionMuseum2025) 4. 优化网关路由配置,支持负载均衡和WebSocket 5. 新增emotion-websocket模块,支持实时聊天 6. 前端集成WebSocket,替代HTTP轮询 7. 添加配置验证和管理工具脚本 技术特性: - 完整的环境隔离和服务发现 - WebSocket实时通信支持 - 负载均衡路由配置 - 跨域和安全配置 - 自动重连和心跳检测
This commit is contained in:
@@ -0,0 +1,205 @@
|
||||
# 后端认证模块重构总结
|
||||
|
||||
## 重构目标
|
||||
|
||||
将后端登录鉴权逻辑集中到emotion-auth模块,从emotion-user模块中移除所有认证相关功能,实现职责分离。
|
||||
|
||||
## 重构内容
|
||||
|
||||
### 1. emotion-auth模块完善
|
||||
|
||||
#### 新增功能
|
||||
- **AuthController**: 用户认证控制器
|
||||
- 用户注册 `/auth/register`
|
||||
- 用户登录 `/auth/login`
|
||||
- 刷新Token `/auth/refresh`
|
||||
- 用户登出 `/auth/logout`
|
||||
- 验证Token `/auth/validate-token`
|
||||
- 获取用户信息 `/auth/user-info`
|
||||
- 检查账号/邮箱/手机号是否存在
|
||||
|
||||
- **AuthService**: 认证服务接口和实现
|
||||
- 完整的用户认证逻辑
|
||||
- JWT Token管理
|
||||
- 密码加密验证
|
||||
- 用户状态检查
|
||||
|
||||
- **User实体**: 用户数据模型
|
||||
- 完整的用户字段定义
|
||||
- 成长数据字段
|
||||
- 第三方登录支持
|
||||
|
||||
- **UserMapper**: 用户数据访问层
|
||||
- 基础CRUD操作
|
||||
- 按账号/邮箱/手机号查询
|
||||
- 第三方登录查询
|
||||
|
||||
#### 配置文件
|
||||
- **application.yml**: 完整的服务配置
|
||||
- 数据库连接配置
|
||||
- Redis配置
|
||||
- JWT配置
|
||||
- 验证码配置
|
||||
- OAuth配置
|
||||
|
||||
- **SecurityConfig**: 安全配置更新
|
||||
- 新增认证接口的公开访问权限
|
||||
- JWT过滤器配置
|
||||
|
||||
### 2. emotion-user模块简化
|
||||
|
||||
#### 移除的功能
|
||||
- **认证相关Controller**:
|
||||
- 移除UserController中的登录、注册、登出接口
|
||||
- 删除CaptchaController
|
||||
- 删除OAuthController
|
||||
|
||||
- **认证相关Service**:
|
||||
- 移除UserService中的认证方法
|
||||
- 删除CaptchaService及其实现
|
||||
- 删除OAuthService及其实现
|
||||
- 删除SliderCaptchaService及其实现
|
||||
|
||||
- **认证相关DTO/VO**:
|
||||
- 删除LoginRequest、RegisterRequest
|
||||
- 删除LoginResponse
|
||||
- 删除CaptchaResponse、SliderCaptchaResponse
|
||||
- 删除OAuthLoginRequest等
|
||||
|
||||
- **认证相关Mapper方法**:
|
||||
- 移除UserMapper中的认证查询方法
|
||||
- 简化UserMapper.xml
|
||||
|
||||
#### 保留的功能
|
||||
- **用户信息管理**:
|
||||
- 获取用户信息
|
||||
- 更新用户信息
|
||||
- 更新最后活跃时间
|
||||
|
||||
- **数据模型**:
|
||||
- User实体(用户基础信息)
|
||||
- UserInfoResponse(用户信息响应)
|
||||
- UserUpdateRequest(用户更新请求)
|
||||
|
||||
### 3. 网关路由配置
|
||||
|
||||
#### 新增路由
|
||||
```yaml
|
||||
# 认证服务路由
|
||||
- id: emotion-auth
|
||||
uri: lb://emotion-auth
|
||||
predicates:
|
||||
- Path=/api/auth/**
|
||||
filters:
|
||||
- StripPrefix=2
|
||||
```
|
||||
|
||||
#### 路由分配
|
||||
- `/api/auth/**` → emotion-auth模块(认证功能)
|
||||
- `/api/user/**` → emotion-user模块(用户信息管理)
|
||||
|
||||
### 4. 前端API调用
|
||||
|
||||
前端认证相关API调用已配置为:
|
||||
- 基础URL: `/api/auth`
|
||||
- 通过网关自动路由到emotion-auth模块
|
||||
|
||||
## 重构后的架构
|
||||
|
||||
### emotion-auth模块职责
|
||||
- 用户注册和登录
|
||||
- JWT Token生成和验证
|
||||
- 密码加密和验证
|
||||
- 验证码生成和验证
|
||||
- 第三方OAuth登录
|
||||
- 用户认证状态管理
|
||||
|
||||
### emotion-user模块职责
|
||||
- 用户基础信息管理
|
||||
- 用户资料更新
|
||||
- 用户活跃状态维护
|
||||
- 用户成长数据管理
|
||||
|
||||
## 数据库设计
|
||||
|
||||
### 用户表结构
|
||||
```sql
|
||||
CREATE TABLE user (
|
||||
id VARCHAR(32) PRIMARY KEY,
|
||||
account VARCHAR(50) NOT NULL UNIQUE,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
username VARCHAR(50),
|
||||
email VARCHAR(100),
|
||||
phone VARCHAR(20),
|
||||
avatar VARCHAR(255),
|
||||
nickname VARCHAR(50),
|
||||
birth_date DATE,
|
||||
location VARCHAR(100),
|
||||
bio TEXT,
|
||||
member_level VARCHAR(20) DEFAULT 'free',
|
||||
total_days INT DEFAULT 0,
|
||||
self_awareness DECIMAL(5,2) DEFAULT 50.00,
|
||||
emotional_resilience DECIMAL(5,2) DEFAULT 50.00,
|
||||
action_power DECIMAL(5,2) DEFAULT 50.00,
|
||||
empathy DECIMAL(5,2) DEFAULT 50.00,
|
||||
life_enthusiasm DECIMAL(5,2) DEFAULT 50.00,
|
||||
status INT DEFAULT 1,
|
||||
is_verified INT DEFAULT 0,
|
||||
last_active_time DATETIME,
|
||||
oauth_platform VARCHAR(20),
|
||||
oauth_id VARCHAR(100),
|
||||
create_by VARCHAR(32),
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_by VARCHAR(32),
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
is_deleted INT DEFAULT 0,
|
||||
remarks TEXT
|
||||
);
|
||||
```
|
||||
|
||||
## 部署配置
|
||||
|
||||
### emotion-auth服务
|
||||
- 端口: 19001
|
||||
- 服务名: emotion-auth
|
||||
- 数据库: emotion_museum
|
||||
- Redis: 用于Token存储
|
||||
|
||||
### 服务依赖
|
||||
- emotion-common: 公共工具和实体
|
||||
- MySQL: 用户数据存储
|
||||
- Redis: Token和验证码缓存
|
||||
- Nacos: 服务注册和配置管理
|
||||
|
||||
## 测试验证
|
||||
|
||||
创建了测试脚本 `test-auth.sh` 用于验证认证功能:
|
||||
- 验证码生成测试
|
||||
- 用户注册测试
|
||||
- 用户登录测试
|
||||
- Token验证测试
|
||||
- 用户信息获取测试
|
||||
- 用户登出测试
|
||||
|
||||
## 重构优势
|
||||
|
||||
1. **职责分离**: 认证和用户管理功能明确分离
|
||||
2. **可维护性**: 认证逻辑集中管理,便于维护和升级
|
||||
3. **可扩展性**: 认证模块独立,便于添加新的认证方式
|
||||
4. **安全性**: 认证逻辑统一管理,安全策略一致
|
||||
5. **性能优化**: 认证服务可独立扩展和优化
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **数据一致性**: 两个模块都需要访问用户表,需要保证数据一致性
|
||||
2. **服务通信**: emotion-user模块如需用户认证信息,需通过emotion-auth模块获取
|
||||
3. **缓存同步**: Token和用户状态缓存需要在两个模块间保持同步
|
||||
4. **错误处理**: 统一错误码和异常处理机制
|
||||
|
||||
## 后续优化建议
|
||||
|
||||
1. **服务间通信**: 使用Feign客户端实现模块间调用
|
||||
2. **缓存策略**: 优化Redis缓存策略,提高性能
|
||||
3. **监控告警**: 添加认证服务的监控和告警
|
||||
4. **安全加固**: 增强密码策略和防暴力破解机制
|
||||
5. **审计日志**: 添加用户认证操作的审计日志
|
||||
Reference in New Issue
Block a user