title: Mailbox HTTP API Token 自助治理
Mailbox HTTP API Token 自助治理
如果当前 mailbox token 具备 TokenManage,可以自助管理该邮箱自己的后续 tokens。
可用接口
GET /api/mailbox/access-tokensPOST /api/mailbox/access-tokensPOST /api/mailbox/access-tokens/{tokenId}/revealPOST /api/mailbox/access-tokens/{tokenId}/disableDELETE /api/mailbox/access-tokens/{tokenId}
适用范围
只适用于:
mailbox token
不适用于:
domain token
创建新 token
curl -X POST https://mailbox.feinian.net/api/mailbox/access-tokens \
-H "Authorization: Bearer <token-with-TokenManage>" \
-H "Content-Type: application/json" \
-d '{
"tokenName": "smtp-client",
"scopes": ["MailboxSend"],
"expiresAtTs": 1780000000000
}'
规则:
tokenName必填scopes至少一个- 新 token 的 scopes 必须是当前 token scopes 的子集
- 新 token 的过期时间不能晚于当前 token
reveal 的语义
POST /api/mailbox/access-tokens/{tokenId}/reveal 用于查看仍可显示明文的 token。
注意:
- 成功返回明文 token 时,响应会带
Cache-Control: no-store - 如果历史 token 的明文已不可用,可能返回
409 Conflict
disable 与 delete 的区别
disable
- 停用该 token
- 之后不能继续使用
delete
- 删除该 token 记录
- 适合不再保留的 token
常见失败
400 Bad Request
常见原因:
- 请求了超出当前权限的 scopes
expiresAtTs非法
403 Forbidden
常见原因:
- 当前 token 不是
mailbox token - 当前 token 不具备
TokenManage
404 Not Found
常见原因:
- tokenId 不存在
- 当前邮箱无权管理该 token
409 Conflict
常见原因:
- 请求 reveal 时,该 token 明文已不可再次显示
推荐做法
- HTTP API、SMTP、自动化程序分别使用不同 token
- 给 SMTP token 只授予
MailboxSend - 定期轮换 token
- 历史 token 明文如果没有保存,不要依赖未来一定能再次 reveal