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

4.5 KiB
Raw Blame History

管理员登录系统 - 快速开始

🚀 快速开始

1. 执行数据库脚本

# 执行建表脚本(包含管理员表和初始数据)
mysql -u root -p emotion_museum < sql/emotion_museum.sql

2. 启动应用

cd backend-single
mvn spring-boot:run

3. 测试登录

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

curl -X POST http://localhost:8080/api/admin/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "account": "admin",
    "password": "admin123"
  }'

响应:

{
  "code": 200,
  "message": "登录成功",
  "data": {
    "accessToken": "eyJhbGciOiJIUzUxMiJ9...",
    "refreshToken": "eyJhbGciOiJIUzUxMiJ9...",
    "expiresIn": 86400,
    "adminInfo": {
      "id": "xxx",
      "account": "admin",
      "username": "系统管理员",
      "role": "super_admin"
    }
  }
}

使用Token访问接口

# 将上面获取的accessToken替换到下面的{TOKEN}
curl -X GET http://localhost:8080/api/admin/page?current=1&size=10 \
  -H "Authorization: Bearer {TOKEN}"

创建新管理员

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. 登录信息记录

📚 详细文档

⚙️ 配置说明

JWT配置(application.yml

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缓存策略

📞 技术支持

如有问题,请查看详细文档或联系开发团队。