
# 사용자 차단

`POST /v1/users/{user_id}:block` · 권한 `users:write`

고객 차단(`source = admin_api`)으로 사용자를 차단하며, 상태는 `blocked`가 됩니다. 이미 차단된 사용자를 차단하면 변경 없이 성공합니다. 삭제 대기 중인 사용자는 차단할 수 없습니다. 사용자의 세션 해지는 비동기로 실행됩니다. 재시도를 안전하게 하려면 `Idempotency-Key` 헤더를 보내십시오.

## 요청

| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
| `user_id` | 경로 | 예 | 사용자 ID이며 `usr_` 접두사가 붙습니다. |

선택 본문:

| 필드 | 유형 | 필수 | 설명 |
|---|---|---|---|
| `note` | 문자열 | 아니요 | 최대 1000자입니다. 개인정보를 입력하지 마십시오. |

## 응답

`200 OK`. 본문은 사용자 객체입니다. `ETag` 헤더에는 사용자 버전이 담깁니다.

키에 `users:read_pii` 권한이 없으면 개인정보가 마스킹됩니다: `email`은 `a***@e***.com`이 되고, `phone_number`는 마지막 2자리만 남습니다(`+**********67`). `name`, `given_name`, `family_name`, `middle_name`, `nickname`은 이니셜(`A. L.`)이 되며, `username`은 첫 글자만 남습니다(`a***`). `birthdate`는 `****-**-**`이 되고 `address`는 `{"redacted": true}`가 됩니다. `user_metadata`와 `app_metadata`는 마스킹되지 않습니다.

```json
{
  "id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
  "kind": "regular",
  "status": "active",
  "external_id": null,
  "username": null,
  "name": "Ada Lovelace",
  "email": "ada@example.com",
  "email_verified": true,
  "phone_number": null,
  "phone_verified": false,
  "user_metadata": {},
  "app_metadata": {},
  "created_via": "admin_api",
  "created_at": "2026-01-15T09:30:00Z",
  "updated_at": "2026-01-15T09:30:00Z",
  "last_sign_in_at": null,
  "deletion_requested_at": null,
  "deletion_due_at": null
}
```

## 오류

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

| HTTP | `code` | 발생 시점 |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | 본문이 올바른 JSON이 아니거나 알 수 없는 필드가 있습니다. |
| 409 | `conflict` | 사용자가 삭제 대기 중입니다(`errors[].code`는 `user_pending_deletion`). |
| 415 | `unsupported_media_type` | `Content-Type: application/json` 없이 본문을 보냈습니다. |
| 422 | `validation_failed` | `note`가 너무 깁니다. |
| 404 | `not_found` | 이 환경에 사용자가 없거나 ID 형식이 잘못되었습니다. |
| 401 | `unauthenticated` | API 키가 없거나 잘못되었거나 폐기되었습니다. |
| 403 | `insufficient_permissions` | 키에 `users:write` 권한이 없습니다. |
| 429 | `rate_limited` | 요청 한도를 초과했습니다. `Retry-After`를 따르십시오. |
| 503 | `service_unavailable` | 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |

## 예제

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p:block \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"note": "Suspected account takeover"}'
```

## 개인정보

이 엔드포인트는 개인정보를 포함합니다: 최종 사용자 프로필. [KeenAuth API의 개인정보](/docs/policies/personal-data)에서 저장되는 항목, 보관 기간, 삭제 방법을 설명합니다. 어떤 필드에도 특수 범주의 개인정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.
