c77352877d
主要更新: 1. 统一所有微服务端口配置(19000-19008) 2. 为所有服务创建本地/测试/生产三套环境配置 3. 配置Nacos认证密码(本地:Peanut2817*#, 测试/生产:EmotionMuseum2025) 4. 优化网关路由配置,支持负载均衡和WebSocket 5. 新增emotion-websocket模块,支持实时聊天 6. 前端集成WebSocket,替代HTTP轮询 7. 添加配置验证和管理工具脚本 技术特性: - 完整的环境隔离和服务发现 - WebSocket实时通信支持 - 负载均衡路由配置 - 跨域和安全配置 - 自动重连和心跳检测
206 lines
5.4 KiB
Markdown
206 lines
5.4 KiB
Markdown
# 后端认证模块重构总结
|
|
|
|
## 重构目标
|
|
|
|
将后端登录鉴权逻辑集中到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. **审计日志**: 添加用户认证操作的审计日志
|