3.7.3 用户管理
用户、令牌与操作日志
用户(User)
- 内置账号系统,通过
POST /api/v1/auth/login登录后获得 JWT - 支持管理员创建、修改、重置密码
- 所有需要认证的 API 都要求 JWT 或 Token
角色
当前版本以单一管理员为主,更多细粒度权限会在后续版本引入。建议通过以下方式隔离使用场景:
- 后台登录账号:用于人工运维
- API Token:用于程序化集成(见下)
令牌(Token)
dwz-server 支持两种令牌形态:
1. 登录 Token(JWT)
- 由
POST /api/v1/auth/login颁发 - 放在请求头
Authorization: Bearer <jwt> - 默认 24 小时过期,可通过
JWT_EXPIRE_HOURS调整 - 适合前端管理后台
2. 个人访问 Token(API Token)
- 通过
POST /api/v1/tokens生成 - 可随时在后台吊销
- 支持两种认证:
- Bearer 认证:简单直接,适合内网和测试场景
- HMAC-SHA256 签名认证:
X-App-Id/X-Signature/X-Timestamp/X-Nonce,密钥不上网,推荐生产外联使用
签名认证的详细算法见「API 参考 → 5.1 认证方式」。
操作日志(Operation Log)
- 由
OperationLogMiddleware自动记录所有登录后 API 调用 - 记录字段:用户、IP、方法、路径、请求体、响应码、耗时
- 敏感字段(
password、token)自动脱敏 - 支持异步写入,避免阻塞主流程
- 查询接口:
GET /api/v1/logs
审计建议
- 定期导出日志归档
- 对高权限操作(删除短链接、重置密码)启用告警
- 生产环境建议把
config.yaml中middleware.operation_log.async_logging设为true避免高 QPS 下的性能瓶颈