密钥与权限
App 密钥
Section titled “App 密钥”每个 App 有三个密钥。只有在创建 App 或轮换密钥时才会完整显示。
| 密钥 | 格式 | 使用方 | 能做什么 |
|---|---|---|---|
| 公钥 | pk_... |
App、网页 | 提交收据、恢复购买、读取对应用户的状态、测试商店、网页结账、测试广告。通过 X-Kasskeep-Key 发送 |
| 私钥 | sk_... |
你的后端 | 读取客户及完整交易详情、读取事件日志。通过 Authorization: Bearer 发送 |
| 回调签名密钥 | whsec_... |
你的后端 | 校验 Kasskeep-Signature 请求头 |
公钥不是秘密,但它只能访问请求里所指定用户 id 的数据。Kasskeep 只保存私钥的 SHA-256 哈希,回调签名密钥则加密保存。
用 POST .../keys/rotate 或 npx @kasskeep/cli apps rotate-keys --id app_xxx [--webhook-secret] 轮换密钥。旧的公钥和私钥立即失效。加上 --webhook-secret(或 {"webhook_secret": true})会同时更换回调签名密钥。
App 密钥不能调用管理 API。
成员用邮箱、密码和 TOTP 验证码登录管理 API。两步验证是强制的:新成员的第一个会话只能用来绑定 TOTP。
| 权限 | 所有者 | 管理员 | 开发者 | 只读 |
|---|---|---|---|---|
| 查看租户、成员、App | ✓ | ✓ | ✓ | ✓ |
| 重命名租户 | ✓ | ✓ | ||
| 删除租户 | ✓ | |||
| 邀请、移除成员,修改角色 | ✓ | ✓ | ||
| 转让所有权 | ✓ | |||
| 创建和配置 App、测试商店、测试广告 | ✓ | ✓ | ✓ | |
| 删除 App | ✓ | ✓ | ||
通过渠道发起退款(refunds.write) |
✓ | ✓ | ||
| 轮换密钥、写入凭据、发送测试回调 | ✓ | ✓ | ✓ | |
| 读取审计日志 | ✓ | ✓ |
角色在 API 中的取值分别是 owner、admin、developer、readonly。
租户由 Kasskeep 创建。租户的状态、限流、配额和数据区域只有 Kasskeep 能修改。
不是租户成员的用户会收到 404 tenant_not_found,因此无法探测租户 id。是成员但没有相应权限的,会收到 403 forbidden。
个人访问 token
Section titled “个人访问 token”CLI 和自动化脚本使用个人访问 token(kkp_...)。在已登录的会话里创建:
curl -X POST https://api.kasskeep.com/v1/admin/me/tokens \ -H "Authorization: Bearer kks_..." -H "Content-Type: application/json" \ -d '{"name": "ci", "expires_in_days": 90}'token 只显示一次。会话(kks_...)有效期 12 小时。token 拥有创建它的用户的权限。
每个管理操作都会写一条审计记录:租户、操作人、操作、对象、修改前后的值和 IP 地址。密钥、私钥、密码、token 之类的字段记为 (redacted)。用 GET /v1/admin/tenants/:tenant_id/audit 读取。