外观
数据隔离与安全机制
本文讲解《到可到对货》在数据安全和访问控制方面的设计,让你理解为什么「别人看不到你的数据」。
数据隔离的三个层次
第一层:团队级隔离
这是最核心的隔离机制——不同团队之间的数据完全不可见。
- A 团队的创始人看不到 B 团队的任何数据
- A 团队成员新建的发货单,B 团队看不到
- A 团队的商品、库存、客户……所有数据对 B 团队来说都不存在
技术实现:每个业务查询都会注入当前用户的「团队 ID」过滤条件,确保跨团队数据泄露在架构层面就是不可能的。
第二层:发货方 / 收货方隔离
对于发货单,有两方参与:
- 发货方团队能看到全部数据(发货单、验货记录、对账信息等)
- 收货方团队只能看到自己被授权的内容(认领的发货单、验货权限等)
收货方未经授权看不到发货方的其他发货单、商品库、库存等无关数据。
第三层:角色权限隔离
同一团队内,有创始人和普通成员两种角色,角色差异体现在团队管理权限上:
| 操作类型 | 创始人 | 普通成员 |
|---|---|---|
| 生成邀请码 / 邀请成员 | ✅ | ❌ |
| 启用 / 禁用成员 | ✅ | ❌ |
| 解散团队 | ✅ | ❌ |
| 创建发货单、验货、对账、回款等业务操作 | ✅ | ✅ |
核心要点: 角色权限影响的是团队管理操作(管理谁可以加入团队),不限制日常业务操作。所有团队成员都能完整地使用系统建单、验货、对账、管理商品和库存等功能。
发货单分享安全机制
发货单通过微信好友分享链接来让收货方访问,这引入了额外的安全机制:
验证码保护
- 发货方可选设置 6 位数字验证码
- 接收方必须输入正确的验证码才能认领发货单
- 验证码在服务器端哈希存储,即使是运维人员也看不到明文
- 连续 5 次输入错误 → 临时锁定
分享可撤销
- 发货方随时可以撤销分享链接
- 撤销后链接立即失效
- 可以重新分享、重新设置验证码
一单一团队
- 一张发货单只能被一个收货团队认领
- 先输入验证码的团队获得认领权
- 防止同一张单被多个收货方认领造成数据混乱
登录安全
Token 管理
- 登录后会获得 JWT Token,有过期时间
- Token 过期后自动失效,需要重新登录
- 换设备登录后,旧 Token 失效,防止账号被盗用
短信验证码
- 短信验证码 10 分钟内最多获取 8 次
- 防止暴力获取验证码
更多登录安全细节请参考登录与角色选择。
常见问题
Q:团队成员能看到我创建的发货单吗?
A:能。同一团队的成员之间数据共享,这是协作的基础。
Q:数据存在哪里?安全吗?
A:数据存储在阿里云数据库中,采用行业标准的加密和备份机制。具体请参阅隐私政策。
Q:员工离职后还能看数据吗?
A:只要及时禁用该成员的账号,对方就无法再访问数据。
