# 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