
# 사용자의 모든 2차 인증 수단 초기화

`POST /v1/users/{user_id}/authenticators:reset` · 권한 `user-credentials:write`

사용자의 모든 2차 인증 수단을 폐기하고 복구 코드를 삭제합니다. 사용자는 다음 로그인 때 인증 수단을 다시 등록해야 합니다. `include_passkeys`의 기본값은 `true`입니다. `false`로 설정하면 패스키(역할이 `both`인 패스키 포함)는 유지됩니다. 각 단계는 best-effort 방식으로 실행되며 반복할 수 있습니다. 알림 전송에 실패해도 호출은 실패하지 않습니다(`notified`). 응답에는 개수만 포함되며, 코드나 비밀 값은 포함되지 않습니다. 재시도를 안전하게 하려면 `Idempotency-Key` 헤더를 보내십시오.

## 요청

| 파라미터 | 위치 | 필수 여부 | 설명 |
|---|---|---|---|
| `user_id` | path | 예 | `usr_` 접두사가 붙은 사용자 ID입니다. |

선택 본문:

| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| `include_passkeys` | boolean | 아니요 | 기본값은 `true`이며, 패스키도 함께 폐기됩니다. `false`이면 패스키(역할이 `both`인 패스키 포함)는 유지됩니다. |
| `locale` | string | 아니요 | 알림의 BCP 47 언어 태그입니다(예: `tr`). 기본값은 사용자 또는 환경의 언어입니다. |

## 응답

`200 OK`. 본문에는 처리된 작업의 개수가 담깁니다.

```json
{
  "revoked_authenticators": 3,
  "recovery_codes_deleted": true,
  "notified": true
}
```

## 오류

모든 오류는 안정적인 `code`를 포함한 `application/problem+json` 본문으로 반환됩니다.

| HTTP | `code` | 발생 조건 |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | 본문이 올바른 JSON이 아니거나 알 수 없는 필드가 있는 경우입니다. |
| 415 | `unsupported_media_type` | `Content-Type: application/json` 없이 본문을 보낸 경우입니다. |
| 422 | `validation_failed` | `locale`이 올바른 BCP 47 언어 태그가 아니거나, 필드 타입이 잘못된 경우입니다. |
| 404 | `not_found` | 이 환경에 사용자가 없는 경우이거나 ID 형식이 잘못된 경우입니다. |
| 401 | `unauthenticated` | API 키가 없거나, 유효하지 않거나, 폐기된 경우입니다. |
| 403 | `insufficient_permissions` | 키에 `user-credentials:write` 권한이 없는 경우입니다. |
| 429 | `rate_limited` | 호출 한도를 초과한 경우입니다. `Retry-After` 값을 따르십시오. |
| 503 | `service_unavailable` | 종속 서비스를 일시적으로 사용할 수 없는 경우입니다. 나중에 다시 시도하십시오. |

## 예시

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/authenticators:reset \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"include_passkeys": false, "locale": "en"}'
```

## 개인정보

이 엔드포인트는 개인정보를 다룹니다. 대상은 자격 증명입니다. [KeenAuth API의 개인정보](/docs/policies/personal-data)에서 저장되는 정보, 보관 기간, 삭제 방법을 확인하십시오. 어떤 필드에도 민감정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.
