为已有凭证重新签发一个新的 Token——凭证的 ID 不变、限额/过期/IP 白名单/调用历史不变,只是 Token 明文换了。
适合场景:怀疑 Token 泄露、定期合规轮换、人员离职等。比”删了再新建”省事,因为不需要再去业务侧改 application_id 关联。
⚠️ 与创建接口一样,完整 Token 明文只在本接口的响应中返回一次。务必当场保存。
ℹ️ 本接口属于 AceDataCloud 平台管理 API,统一前缀 https://platform.acedata.cloud/api/v1/。
接口概览
| 项 |
内容 |
| 方法 |
POST |
| URL |
https://platform.acedata.cloud/api/v1/credentials/{credential_id}/rotate/ |
| 鉴权 |
✅ 需要账户令牌 |
| Body |
无 / {} |
鉴权说明(如何获取账户令牌)
请求头:
1
|
Authorization: Bearer platform-v1-92eb****629c
|
获取方式见管理 AceDataCloud 平台账户令牌。
路径参数
| 参数 |
类型 |
必填 |
说明 |
credential_id |
UUID |
✅ |
要轮换的凭证 ID |
请求示例
cURL
1 2 3
|
curl -X POST 'https://platform.acedata.cloud/api/v1/credentials/df3e1b1b-9e72-4c4f-9a83-1e23f7c8b4d6/rotate/' \ -H 'accept: application/json' \ -H 'authorization: Bearer platform-v1-92eb****629c'
|
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
import requests
cred_id = "df3e1b1b-9e72-4c4f-9a83-1e23f7c8b4d6" resp = requests.post( f"https://platform.acedata.cloud/api/v1/credentials/{cred_id}/rotate/", headers={ "accept": "application/json", "authorization": "Bearer platform-v1-92eb****629c", }, timeout=10, ) cred = resp.json() print(f"✅ 新 Token: {cred['token']}") print(f"凭证 ID 保持不变: {cred['id']}")
|
Node.js
1 2 3 4 5 6 7 8 9 10
|
const credId = 'df3e1b1b-9e72-4c4f-9a83-1e23f7c8b4d6' const r = await fetch( `https://platform.acedata.cloud/api/v1/credentials/${credId}/rotate/`, { method: 'POST', headers: { authorization: 'Bearer platform-v1-92eb****629c' }, } ) const cred = await r.json() console.log('新 Token:', cred.token)
|
响应示例(HTTP 200)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
{ "id": "df3e1b1b-9e72-4c4f-9a83-1e23f7c8b4d6", "user_id": "89518d07-5560-4b05-92c1-667f3ddf6a4b", "application_id": "82f57141-2323-4453-8730-60f7d833a2da", "name": "production-server-01", "token": "ac9999999999999999999999999999ffff", "amount": 50.0, "used_amount": 12.34, "remaining_amount": 37.66, "disabled": false, "expired_at": "2026-12-31T23:59:59Z", "tags": ["prod"], "metadata": null, "client_ip_allowlist": ["203.0.113.7/32"], "used_at": "2026-04-26T08:30:00Z", "created_at": "2026-04-26T07:55:00Z", "updated_at": "2026-04-26T10:12:00Z" }
|
注意 id 不变、token 已被新值替换。轮换瞬间旧 Token 立即失效。
错误处理
| HTTP |
code |
含义 |
| 401 |
not_authenticated |
缺少账户令牌 |
| 403 |
permission_denied |
该凭证不属于你 |
| 404 |
not_found |
凭证不存在或已被删除 |
实用提示
- 轮换是原子操作:新 Token 在响应返回时已经生效,旧 Token 已经失效。不存在两个 Token 同时有效的过渡期。
- 零停机轮换:把”调用方先用新 Token 重试一次”作为应急保底——比如把”401 → fetch 最新 Token → 重试”内置到业务客户端里。
- 不要在没办法立即更新业务侧 Token 时轮换:旧 Token 会立刻失效。如果业务侧无法迅速换 Token,先用
disabled=true 软关停(PATCH 当前还不开放,可走删除)。
- 轮换不影响:限额(
amount)、过期时间(expired_at)、IP 白名单、调用历史、标签、元数据。
相关接口