v1auth 上下文凭据管理
恢复码
POST /v1/auth/credentials/recovery-codes:生成一次性备用登录码。
恢复码是「主凭据全都丢了」时的最后一根救命稻草:设备丢了、验证器删了、通行密钥在坏掉的那台机器上。它们必须能被一次性抄走,也必须不能被再次读出。
请求
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
count | number | 可选 | 生成数量,6–20;缺省由服务端决定 |
{
"success": true,
"codes": ["a1b2-c3d4-e5f6", "g7h8-i9j0-k1l2"],
"credential": { "id": "cred_...", "type": "recovery_code" }
}规则
| 规则 | 说明 |
|---|---|
| 明文只出现一次 | codes 仅在本响应里返回,库中只留哈希 |
| 重新生成即作废旧的 | 生成一整套新码会立刻让之前那套全部失效 |
| 单次使用 | 每枚码用过即从集合中移除 |
| 提权 | max_age=300 |
| 审计 | 只记录条数,不记录码本身 |
审计里为什么没有码
把恢复码写进审计表,等于把备份登录凭证复制到一个防护更弱的地方。 记条数就够了:需要回答的问题是「什么时候重新生成过一套」,而不是「那套码是什么」。