37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# TASK004 - 用户认证模块
|
||
|
||
## 任务信息
|
||
- **任务编号**: TASK004
|
||
- **任务名称**: 用户认证模块
|
||
- **版本**: V1.0
|
||
- **状态**: ✅ 完成
|
||
|
||
## 任务描述
|
||
实现用户认证相关功能,包括用户注册、登录、登出、获取用户信息等接口,集成JWT认证机制,实现用户数据的增删改查操作。
|
||
|
||
## 验收标准清单
|
||
- [x] 实现用户注册接口(/api/auth/register) - 完成,支持邮箱、密码、昵称注册
|
||
- [x] 实现用户登录接口(/api/auth/login) - 完成,返回JWT token和用户信息
|
||
- [x] 实现用户登出接口(/api/auth/logout) - 完成,token加入黑名单机制
|
||
- [x] 实现获取用户信息接口(/api/user/info) - 完成,支持当前用户和公开用户信息
|
||
- [x] 集成JWT认证拦截器 - 完成,自动验证token和设置用户上下文
|
||
- [x] 实现密码加密和验证 - 完成,使用BCrypt加密
|
||
- [x] 实现邮箱格式验证和重复性检查 - 完成,注册时检查邮箱唯一性
|
||
- [x] 创建UserService、UserController和相关DTO - 完成,完整的服务层和控制层
|
||
- [x] 实现token黑名单机制 - 完成,使用Redis存储黑名单token
|
||
- [x] 添加登录失败次数限制 - 完成,Redis记录失败次数,15分钟锁定
|
||
|
||
## 注意事项
|
||
1. 注册时需要验证邮箱格式和唯一性
|
||
2. 登录成功后返回JWT token和用户基本信息,不能返回密码
|
||
9. 邮箱字段需要转换为小写存储
|
||
12. 注册时可以设置默认头像
|
||
13. 需要记录用户最后登录时间
|
||
14. 实现用户状态管理(正常、锁定、删除)
|
||
|
||
## 相关文件
|
||
- src/main/java/com/lxy/hsend/controller/AuthController.java
|
||
- src/main/java/com/lxy/hsend/controller/UserController.java
|
||
- src/main/java/com/lxy/hsend/service/UserService.java
|
||
- src/main/java/com/lxy/hsend/dto/auth/
|
||
- src/main/java/com/lxy/hsend/config/JwtAuthenticationFilter.java |