Files
happy-life-star/backend-single/README_ADMIN.md
T
2025-10-27 23:57:31 +08:00

194 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 管理员登录系统 - 快速开始
## 🚀 快速开始
### 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缓存策略
## 📞 技术支持
如有问题,请查看详细文档或联系开发团队。