⚠️ 本文档已过时,仅留档备查,请勿删除。该历史任务已落地;当前状态见 `../任务清单.md`。 # [P0] 正式认证、RBAC 与公司级数据隔离 ## 背景 当前登录页不校验密码;公司端固定显示 A 公司。服务端没有用户、会话和授权逻辑,任何浏览器都可直接访问总账或公司页面并调用解析接口。 ## 范围 - 实现系统管理员和公司出纳两类角色的真实账号、密码哈希、首次改密、停用和会话。 - 公司账号绑定且只绑定一个公司;总账角色拥有跨公司管理权限。 - 对读取、上传、导出、审核、提醒、设置和结账接口逐项做服务端授权。 - 定义会话过期、退出、失败登录限速和审计日志。 - 页面路由保护只作为体验层,不能代替 API 权限。 ## 验收标准 - [ ] 无会话访问受保护页面/API 返回未认证状态。 - [ ] 公司用户无法通过修改 URL、参数或请求体访问其他公司数据。 - [ ] 公司用户不能调用总账审核、主数据、起算日和结账接口。 - [ ] 管理员可创建、停用、重置公司账号;初始密码只显示一次并强制修改。 - [ ] 密码不以明文保存或记录到日志。 - [ ] 权限矩阵有自动化测试,覆盖 IDOR、跨公司导出和跨公司上传。 ## 测试 - 登录、退出、过期会话、停用账号、首次改密测试。 - 每个资源类型至少一个跨公司拒绝测试。 ## 依赖 Issue 002。