bibi45

2020-11-20 | Backend 中文

后台 API 设计:认证、授权、上传与可审计删除

bibi45

把管理后台、权限表和图片上传笔记收敛为可落地的接口设计原则。

This article is currently available in Chinese. The language switch changes the site interface; the original text is shown below.

后台接口首先要区分两件事:认证回答“你是谁”,授权回答“你能做什么”。页面隐藏按钮不是授权;每一条写接口都需要在服务端检查当前主体的权限范围。

权限模型

从简单到复杂可以依次采用:

  • 已登录检查;
  • 基于角色的权限,例如运营、客服、管理员;
  • 对具体对象的权限,例如只能编辑自己负责的品牌或订单;
  • 以审计事件记录高风险操作的操作者、时间、对象和结果。

令牌、Cookie 和权限声明只经 HTTPS 传输,不写进前端源码、截图、示例请求或日志。密码创建和更新必须使用框架提供的哈希 API,绝不存储或回传明文。

文件上传与删除

文件存储应在领域模型之外通过存储适配层实现,这样可以从本地开发存储切换到对象存储而不改业务接口。上传端至少验证大小、允许的媒体类型、真实文件签名和访问权限;文件名不可直接作为服务器路径。

删除要考虑数据库记录与文件对象的一致性。典型做法是在事务提交成功后执行可重试的异步删除,或使用带保留期的软删除/对象版本控制。不要只删除数据库行而留下孤儿文件,也不要在数据库回滚后永久删除了仍被引用的文件。

旧笔记中的 FastDFS 调用保留为历史实现线索,但本文不把它当作默认方案;真正的存储后端应按团队运维能力、备份与访问控制要求选择。

© 2026 bibi45. All rights reserved.

Built as a static, Git-owned site.