Skip to content

数据隔离与安全机制

本文讲解《到可到对货》在数据安全和访问控制方面的设计,让你理解为什么「别人看不到你的数据」。

数据隔离的三个层次

第一层:团队级隔离

这是最核心的隔离机制——不同团队之间的数据完全不可见

  • A 团队的创始人看不到 B 团队的任何数据
  • A 团队成员新建的发货单,B 团队看不到
  • A 团队的商品、库存、客户……所有数据对 B 团队来说都不存在

技术实现:每个业务查询都会注入当前用户的「团队 ID」过滤条件,确保跨团队数据泄露在架构层面就是不可能的。

第二层:发货方 / 收货方隔离

对于发货单,有两方参与:

  • 发货方团队能看到全部数据(发货单、验货记录、对账信息等)
  • 收货方团队只能看到自己被授权的内容(认领的发货单、验货权限等)

收货方未经授权看不到发货方的其他发货单、商品库、库存等无关数据。

第三层:角色权限隔离

同一团队内,有创始人普通成员两种角色,角色差异体现在团队管理权限上:

操作类型创始人普通成员
生成邀请码 / 邀请成员
启用 / 禁用成员
解散团队
创建发货单、验货、对账、回款等业务操作

核心要点: 角色权限影响的是团队管理操作(管理谁可以加入团队),不限制日常业务操作。所有团队成员都能完整地使用系统建单、验货、对账、管理商品和库存等功能。

发货单分享安全机制

发货单通过微信好友分享链接来让收货方访问,这引入了额外的安全机制:

验证码保护

  • 发货方可选设置 6 位数字验证码
  • 接收方必须输入正确的验证码才能认领发货单
  • 验证码在服务器端哈希存储,即使是运维人员也看不到明文
  • 连续 5 次输入错误 → 临时锁定

分享可撤销

  • 发货方随时可以撤销分享链接
  • 撤销后链接立即失效
  • 可以重新分享、重新设置验证码

一单一团队

  • 一张发货单只能被一个收货团队认领
  • 先输入验证码的团队获得认领权
  • 防止同一张单被多个收货方认领造成数据混乱

登录安全

Token 管理

  • 登录后会获得 JWT Token,有过期时间
  • Token 过期后自动失效,需要重新登录
  • 换设备登录后,旧 Token 失效,防止账号被盗用

短信验证码

  • 短信验证码 10 分钟内最多获取 8 次
  • 防止暴力获取验证码

更多登录安全细节请参考登录与角色选择

常见问题

Q:团队成员能看到我创建的发货单吗?

A:能。同一团队的成员之间数据共享,这是协作的基础。

Q:数据存在哪里?安全吗?

A:数据存储在阿里云数据库中,采用行业标准的加密和备份机制。具体请参阅隐私政策

Q:员工离职后还能看数据吗?

A:只要及时禁用该成员的账号,对方就无法再访问数据。