# 管理员登录系统 - 快速开始 ## 🚀 快速开始 ### 1. 执行数据库脚本 ```bash # 执行建表脚本(包含管理员表和初始数据) mysql -u root -p emotion_museum < sql/emotion_museum.sql ``` ### 2. 启动应用 ```bash cd backend-single mvn spring-boot:run ``` ### 3. 测试登录 ```bash curl -X POST http://localhost:8080/api/admin/auth/login \ -H "Content-Type: application/json" \ -d '{ "account": "admin", "password": "admin123" }' ``` ## 📋 默认管理员账号 - **账号**: `admin` - **密码**: `admin123` - **角色**: `super_admin` ⚠️ **重要**: 生产环境部署后请立即修改默认密码! ## 🔑 API接口 ### 管理员认证 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 登录 | POST | `/api/admin/auth/login` | 账号密码登录 | | 获取信息 | GET | `/api/admin/auth/info` | 获取当前管理员信息 | | 登出 | POST | `/api/admin/auth/logout` | 退出登录 | | 刷新Token | POST | `/api/admin/auth/refreshToken` | 刷新访问令牌 | ### 管理员管理 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------| | 分页查询 | GET | `/api/admin/page` | 分页查询管理员列表 | | 查询详情 | GET | `/api/admin/detail` | 根据ID查询详情 | | 创建 | POST | `/api/admin/create` | 创建新管理员 | | 更新 | PUT | `/api/admin/update` | 更新管理员信息 | | 删除 | DELETE | `/api/admin/delete` | 删除管理员 | ## 💡 使用示例 ### 登录获取Token ```bash curl -X POST http://localhost:8080/api/admin/auth/login \ -H "Content-Type: application/json" \ -d '{ "account": "admin", "password": "admin123" }' ``` **响应**: ```json { "code": 200, "message": "登录成功", "data": { "accessToken": "eyJhbGciOiJIUzUxMiJ9...", "refreshToken": "eyJhbGciOiJIUzUxMiJ9...", "expiresIn": 86400, "adminInfo": { "id": "xxx", "account": "admin", "username": "系统管理员", "role": "super_admin" } } } ``` ### 使用Token访问接口 ```bash # 将上面获取的accessToken替换到下面的{TOKEN} curl -X GET http://localhost:8080/api/admin/page?current=1&size=10 \ -H "Authorization: Bearer {TOKEN}" ``` ### 创建新管理员 ```bash curl -X POST http://localhost:8080/api/admin/create \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "account": "admin2", "password": "123456", "username": "运营管理员", "email": "admin2@example.com", "phone": "13800138001", "role": "admin", "department": "运营部", "position": "运营经理" }' ``` ## 🔐 安全特性 1. ✅ 密码BCrypt加密存储 2. ✅ JWT Token认证 3. ✅ Token类型隔离(admin/user) 4. ✅ 独立的拦截器验证 5. ✅ Redis存储Token 6. ✅ 登录信息记录 ## 📚 详细文档 - [系统设计文档](docs/ADMIN_AUTH.md) - [测试指南](docs/ADMIN_AUTH_TEST.md) - [实现总结](docs/ADMIN_IMPLEMENTATION_SUMMARY.md) ## ⚙️ 配置说明 ### JWT配置(application.yml) ```yaml emotion: jwt: secret: emotion-museum-secret-key-2025 # JWT密钥 expiration: 86400000 # Token过期时间(24小时) refresh-expiration: 604800000 # 刷新Token过期时间(7天) ``` ### Redis配置 确保Redis服务正常运行,Token会存储在Redis中: - 管理员Token: `admin_token:{adminId}` - 管理员刷新Token: `admin_refresh_token:{adminId}` ## 🛠️ 常见问题 ### Q: 登录返回401 **A**: 检查账号密码是否正确,确认数据库中有初始管理员数据 ### Q: 访问接口返回403 **A**: 确保使用管理员Token访问管理员接口,普通用户Token无法访问 ### Q: Token验证失败 **A**: Token可能已过期,重新登录或使用refreshToken刷新 ### Q: 如何修改密码 **A**: 当前版本需要直接更新数据库,后续版本会提供密码修改接口 ## 🎯 角色说明 系统支持三种管理员角色: - `super_admin`: 超级管理员,拥有所有权限 - `admin`: 普通管理员 - `operator`: 运营人员 ## 📝 开发建议 1. **生产环境** - 修改默认密码 - 启用HTTPS - 配置合适的Token过期时间 - 定期备份数据库 2. **安全建议** - 定期更换JWT密钥 - 监控异常登录 - 实现登录失败次数限制 - 添加操作日志 3. **性能优化** - 配置Redis连接池 - 优化数据库索引 - 实现Token缓存策略 ## 📞 技术支持 如有问题,请查看详细文档或联系开发团队。