身份验证
MorisBox 根据账户类型提供两种密钥。
| 账户 | 密钥前缀 | 用途 |
|---|---|---|
| 合作伙伴 | sk_…(不包括 sk_dev_) | 完整合作伙伴 API(/messages、机器人、模板等) |
| 开发者 | sk_dev_… | 仅限开发者 API(/dev/*),使用 MorisBox 模板 |
请勿在合作伙伴或开发者后端使用最终用户 JWT。
通用请求头
Authorization: Bearer <api_key>
Content-Type: application/json
开发者密钥也支持 X-Api-Key: sk_dev_…。
合作伙伴密钥
| 属性 | 说明 |
|---|---|
| 格式 | 不透明字符串(sk_…) |
| 存储 | 服务器端哈希;密钥仅显示一次 |
| 权限范围 | send、read、templates、full 等 |
| IP 允许列表 | 可选,按密钥配置 |
创建密钥(合作伙伴中心)
- 登录合作伙伴中心
- 打开管理 → API 密钥 → 创建
- 立即复制密钥
通过 API 创建
POST /api/v1/settings/api-keys
Authorization: Bearer <existing_key>
{
"name": "Backend production",
"scopes": "send"
}
登录合作伙伴中心(UI)
| 端点 | 用途 |
|---|---|
POST /api/v1/auth/partner/login | 用户名和密码 → 会话密钥 |
POST /api/v1/auth/partner/logout | 撤销会话密钥 |
| 入驻 | 申请合作伙伴账户 |
服务器集成应使用专用 API 密钥,不要使用 UI 会话。
开发者密钥
请参阅完整指南:开发者账户。
| 端点 | 用途 |
|---|---|
POST /api/v1/auth/developer/register | 创建账户和首个密钥 |
POST /api/v1/auth/developer/login | 控制台会话 |
GET/POST /api/v1/dev/api-keys | 管理密钥 |
DELETE /api/v1/dev/api-keys/{id} | 撤销密钥 |
开发者不使用合作伙伴的 /api/v1/messages 端点。他们使用带 template_code 的 /api/v1/dev/messages。
安全清单
- 在生产环境和公共沙盒中使用 HTTPS
- 密钥泄露后立即轮换
- 采用最小权限范围
- 切勿在公共移动应用中嵌入密钥
- 验证 Webhook 签名(Webhook)
未授权响应
{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API key."
}
}
密钥无效时返回 401;权限范围、IP 或角色不被允许时返回 403。