chore: initial commit of ai site platform
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
53
docs/外公司部署-授权与登录控制.md
Normal file
53
docs/外公司部署-授权与登录控制.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# 登录策略与外公司部署授权
|
||||
|
||||
## 删文件后旧包还能用吗?
|
||||
|
||||
分几层:
|
||||
|
||||
| 客户删了什么 | 能否拦住旧延期包 |
|
||||
|--------------|------------------|
|
||||
| 只删 `leases/*.json` | **能** — 消费记录在 `state/_consumed.json` |
|
||||
| 只删 leases + 改/清 state 文件 | **能**(有库时)— Postgres `license_consumed` 双写,可恢复 |
|
||||
| **leases + state + 数据库全删** | 本地拦不住 → 需配置 **`RedeemURL` 联网核销**,或你们**永不重签同一 id** |
|
||||
|
||||
纯离线、客户把机器数据全部清空,没有任何方案能 100% 防复用(等于新装机)。要硬保证:配核销服务,或只发一次性 id 且服务端登记。
|
||||
|
||||
---
|
||||
|
||||
## 推荐:延期软件 + 分层持久化
|
||||
|
||||
```text
|
||||
./data/license/leases/ # 租约文件(可删)
|
||||
./data/license/state/ # _consumed.json 已消费 id(签名)
|
||||
Postgres license_consumed # 第二副本
|
||||
RedeemURL(可选) # 你们服务端核销 id
|
||||
```
|
||||
|
||||
### yaml
|
||||
|
||||
```yaml
|
||||
License:
|
||||
Enabled: true
|
||||
Customer: "A公司"
|
||||
LeaseDir: "./data/license/leases"
|
||||
StateDir: "./data/license/state"
|
||||
ControlSecret: "换成强密钥"
|
||||
RedeemURL: "https://license.你们的域名" # 建议生产打开
|
||||
SeedNotAfter: "2027-07-30"
|
||||
```
|
||||
|
||||
`RedeemURL` 时:导入包会 `POST {RedeemURL}/v1/license/redeem`,服务端若该 id 已核销则拒绝。删光客户机数据后旧包仍无效。
|
||||
|
||||
临时延期:**仅 1 次**、最多 30 天。同一本地 id 不可二次导入。
|
||||
|
||||
---
|
||||
|
||||
## API
|
||||
|
||||
`X-License-Secret`:`renew` / `extend` / `import`
|
||||
|
||||
```bash
|
||||
curl -X POST http://客户机:8888/api/v1/license/import \
|
||||
-H "X-License-Secret: 强密钥" -H "Content-Type: application/json" \
|
||||
--data-binary @pack.json
|
||||
```
|
||||
Reference in New Issue
Block a user