跳转到内容

密钥与权限

每个 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。

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 读取。