feat(auth): implement user and device authentication
This commit is contained in:
+12
-1
@@ -81,6 +81,16 @@
|
||||
- 状态变化校验当前状态、设备归属、claim token、版本和租约。
|
||||
- 创建、领取、完成和证据上传的重试路径必须幂等。
|
||||
- 不向客户端返回 `password_hash`、`token_hash`、存储绝对路径或供应商密钥。
|
||||
- 管理 Cookie 与 BUYER 设备 Bearer token 使用独立 middleware,不得互相替代;
|
||||
每次鉴权都重新检查用户/设备启用、绑定、撤销和过期状态。
|
||||
- 密码使用 bcrypt;session、设备 secret 和 access token 使用至少 256 bit 随机值,
|
||||
持久化层只保存 SHA-256。账号和设备只由 `authctl` 显式预置。
|
||||
- 管理 Web POST 校验双提交 CSRF;Cookie 管理 API 的非安全方法额外校验
|
||||
`X-CSRF-Token`。登录成功同时轮换 session 和 CSRF。
|
||||
- 管理/App 登录必须在 bcrypt 前按服务端 `RemoteAddr` 独立限流;不得信任未配置的
|
||||
转发头。限流器必须并发安全、内存有界,超限返回通用 `429` 和 `Retry-After`。
|
||||
- 创建和取消任务必须从认证上下文传入真实 ADMIN actor 并写入只追加事件;共享
|
||||
`local-admin` 只用于 MVP 资源可见范围,不能冒充操作者。
|
||||
- 通用错误使用稳定 code 和可读 message;内部堆栈只进受控日志。
|
||||
- 文件访问通过鉴权接口,防止路径遍历和猜测 URL。
|
||||
- Go 命令固定 `GOTOOLCHAIN=local`;`go.mod` 不得出现更高 Go 版本或未固定的
|
||||
@@ -135,5 +145,6 @@
|
||||
|
||||
项目标准验证命令是根目录 `.\init.ps1`;它执行 Android Gradle `test` 和
|
||||
`assembleDebug`,再以 `GOTOOLCHAIN=local` 执行后端 `go test ./...`、
|
||||
`go vet ./...`、`gofmt` 检查和两个入口构建。设置 `RUN_START_COMMAND=1` 时使用
|
||||
`go vet ./...`、`gofmt` 检查和 API/migration/authctl 三个入口构建。设置
|
||||
`RUN_START_COMMAND=1` 时使用
|
||||
SDK 内新版 ADB 安装并启动 Android App。
|
||||
|
||||
Reference in New Issue
Block a user