POST /auth/totp/recovery-codes/regenerate
Invalida todos os recovery codes existentes e gera 10 novos.
- Access: Signed in (incl. pre-session)
- Service:
https://auth-api.axuz.net
Accepted authentication
sessionCookie— Sessão plena Axuz (cookie de sessão da casa). Sessão restrita é 403 enrollment_required.bearerSession— JWT de acesso da sessão em `Authorization: Bearer`.
Invalida todos os recovery codes existentes e gera 10 novos.
Motivo: usuário usou vários codes ou suspeita que a lista vazou; quer resetar sem desligar 2FA (mantendo o segredo intacto). Comportamento: decoda body {"code"}, exige que verifyUserTOTP aceite o código (TOTP OU recovery — cuidado: um recovery reset é possível se ainda restar um code não usado). Gera 10 novos codes, hashes HMAC-SHA256 (recovery_code_hash.go), UPDATE user_totp seta recovery_codes=[hashes], used_codes=[] (zera contador de usados).
Entradas: body JSON {"code"}, user_id do context.
Retorno: 200 {recovery_codes: [10 plain]}; 400 se code inválido; 500 em falhas de DB/hash. Efeito: UPDATE user_totp; sobrescreve recovery_codes e used_codes; 10 HMACs (barato).
Parameters
No parameters.
Request body
Corpo JSON. O schema detalhado deste endpoint ainda não está tipado na spec; veja a descrição da operação.
application/json
| Name | Type | Required | Description |
|---|---|---|---|
(corpo) | object | no |
{}Responses
200
{recovery_codes: [10 plain]}
400
Se code inválido
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes |
401
Sem credencial valida
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes |
429
Limite de requisições excedido.
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes |
500
Em falhas de DB/hash. Efeito: UPDATE user_totp
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes |
Examples
"Try it" is turned off in this reference. Use the examples with your test credential.
curl
curl -sS -X POST 'https://auth-api.axuz.net/auth/totp/recovery-codes/regenerate' \
-H "Authorization: Bearer $AXUZ_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Node.js
const res = await fetch("https://auth-api.axuz.net/auth/totp/recovery-codes/regenerate", {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.AXUZ_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());Python
import os
import requests
res = requests.request(
"POST",
"https://auth-api.axuz.net/auth/totp/recovery-codes/regenerate",
headers={
"Authorization": f"Bearer {os.environ['AXUZ_TOKEN']}",
},
json={},
timeout=30,
)
res.raise_for_status()
print(res.json())